2016-01-21 11:21:37 1249瀏覽
隨著技術(shù)更新速度的加快,而如今手機(jī)上的應(yīng)用軟件越來(lái)越多地受到人們的關(guān)注,隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的來(lái)臨,智能手機(jī)和平板電腦等移動(dòng)設(shè)備成為下一代互聯(lián)網(wǎng)的終端已是人勢(shì)所趨。而移動(dòng)互聯(lián)網(wǎng)的便攜性和多元性等優(yōu)勢(shì)決定了嵌入式應(yīng)用將會(huì)比現(xiàn)在的互聯(lián)網(wǎng)應(yīng)用更加普及,將會(huì)給用戶提供更加便捷的服務(wù)。
比如,對(duì)于iOS開發(fā)者來(lái)說(shuō),逆向工程是最為實(shí)用的技術(shù)之一。例如,工程師可以逆向系統(tǒng)調(diào)用,在自己的程序里使用一些文檔中沒(méi)有提及的私有功能,還可以逆向一些經(jīng)典的軟件,包括競(jìng)爭(zhēng)對(duì)手的軟件,從而研究自己的軟件能夠借鑒些什么技術(shù)。
1、逆向系統(tǒng)調(diào)用程序員編寫的軟件能夠運(yùn)行在操作系統(tǒng)中,提供各種各樣的功能,是因?yàn)椴僮飨到y(tǒng)本身已經(jīng)內(nèi)嵌了這些功能,軟件只是拿來(lái)重新組合使用罷了。眾所周知,能在App Store上架的App的功能十分有限,在蘋果公司嚴(yán)格的審核制度下,絕大多數(shù)App的實(shí)現(xiàn)都源于公開的開發(fā)文檔,而不能使用諸如鎖屏、關(guān)機(jī)等文檔中不涉及的功能。如果你的程序面向Cydia,那么不采用非公開功能將導(dǎo)致程序幾乎沒(méi)有競(jìng)爭(zhēng)力。如果你的程序想擁有打電話、發(fā)短信等不公開的功能,最有效的途徑就是逆向iOS開發(fā)系統(tǒng)調(diào)用,還原系統(tǒng)實(shí)現(xiàn)相應(yīng)功能的代碼,并應(yīng)用到自己的程序中。
2、借鑒別的軟件逆向工程最受歡迎的應(yīng)用場(chǎng)合就是“借鑒”他人的軟件功能。對(duì)于來(lái)源是App Store的App來(lái)說(shuō),大多數(shù)技術(shù)的實(shí)現(xiàn)并不復(fù)雜,巧妙的創(chuàng)意和良好的運(yùn)營(yíng)才是其成功的關(guān)鍵。如果只是單純借鑒其功能,那么采用逆向工程,費(fèi)時(shí)費(fèi)力,性價(jià)比不高,從頭開發(fā)一個(gè)功能類似的軟件反而要省時(shí)省力得多。但是,當(dāng)我們不知道被借鑒軟件中的某個(gè)功能是如何實(shí)現(xiàn)的時(shí)候,逆向工程就能起到關(guān)鍵性的作用。這種情況在大量使用私有函數(shù)的Cydia軟件中尤其常見號(hào)稱教育行業(yè)iOS培訓(xùn)平臺(tái)上第一款通話錄音軟件的Audio Recorder,足夠有趣,但我們不知其原理如何,此時(shí)使用逆向工程的技術(shù)就能夠?qū)λ私庖欢?。有些軟件,比如微信,功能?jīng)典,結(jié)構(gòu)也非常復(fù)雜,所涉及的代碼自然十分多。
最后一般來(lái)說(shuō),軟件逆向工程可以看做系統(tǒng)分析和代碼分析兩個(gè)階段的有機(jī)結(jié)合。在系統(tǒng)分析階段,要從整體上觀察目標(biāo)程序的行為特征、文件的組織架構(gòu),從而找到我們感興趣的地方。一旦能夠較為熟練地操作這個(gè)程序,并且找到了我們想要逆向的點(diǎn),就可以進(jìn)入代碼分析階段,利用各種工具對(duì)程序本身的二進(jìn)制文件進(jìn)行分析,達(dá)到我們的目的,您還有什么疑問(wèn)可以咨詢我們?cè)诰€老師,扣丁學(xué)堂祝您快樂(lè)學(xué)習(xí)每天一天。
查看更多關(guān)于“iOS培訓(xùn)資訊”的相關(guān)文章>>