一、逆向工程
逆向工程著隆,通過(guò)分析一個(gè)程序或者系統(tǒng)的功能扰楼、結(jié)構(gòu)或行為,將它的技術(shù)實(shí)現(xiàn)或設(shè)計(jì)細(xì)節(jié)推導(dǎo)出來(lái)的過(guò)程美浦。
二弦赖、逆向工程的作用
1. 與安全相關(guān)的iOS逆向工程
- 評(píng)定安全等級(jí)
- 逆向惡意軟件(查毒和殺毒)
- 去除軟件的使用限制(破解和盜版)
2. 與開發(fā)相關(guān)的iOS逆向工程
- 逆向系統(tǒng)調(diào)用(如調(diào)用系統(tǒng)的鎖屏,關(guān)機(jī)等功能)
- 借鑒別的軟件
三浦辨、逆向開發(fā)的一般流程
逆向工程開發(fā)要將系統(tǒng)分析和代碼分析有機(jī)結(jié)合蹬竖。系統(tǒng)分析從整體上觀察目標(biāo)工程的行為特征、文件的組織結(jié)構(gòu)流酬,從而找到所需逆向的點(diǎn)币厕。然后從該入口進(jìn)入代碼分析,利用各種強(qiáng)大的你想工具對(duì)程序本身的二進(jìn)制文件進(jìn)行分析康吵,從而達(dá)到目的劈榨。
四、 逆向開發(fā)用到的工具
1.監(jiān)測(cè)工具:用于嗅探晦嵌、監(jiān)測(cè)同辣、記錄目標(biāo)程序行為的工具。
常用的有Reveal惭载,tcpdump旱函,libNotifyWatch和PonyDebugger等。
2.開發(fā)工具:用于開發(fā)越獄代碼的工具
最著名的就是Theos描滔,能夠編譯生成Tweak插件棒妨。還有可以基于Xcode開發(fā)的iOSOpenDev,同樣可以進(jìn)行逆向開發(fā)含长。
3.反編譯器:主要是IDA
該工具橫跨Windows/Linux/Mac平臺(tái)券腔,它將目標(biāo)程序的可執(zhí)行文件作為輸入,然后輸出該程序的匯編代碼拘泞,甚至是偽代碼纷纫,強(qiáng)大的反編譯工具。
4.調(diào)試器:主要是基于命令行的GDB
Xcode的調(diào)試器是GDB或LLDB的圖像化包裝陪腌。