一、什么是逆向工程蚜退?
軟件的逆向工程指的是通過分析一個程序或系統(tǒng)的功能、結構或行為彪笼,將它的技術實現(xiàn)或設計細節(jié)推導出來的過程钻注。
(1)評定安全等級
(2)逆向惡意軟件(查毒和殺毒)
(3)檢查軟件后門
(4)去除軟件的使用限制(破解和盜版)
(1)逆向系統(tǒng)調用(如調用系統(tǒng)的鎖屏配猫,關機等功能)
(2)借鑒別的軟件(向優(yōu)秀的軟件學習)
軟件逆向工程可以看做是系統(tǒng)分析和代碼分析兩個階段的有機結合。
在系統(tǒng)分析階段章姓,要從整體上觀察目標程序的行為特征佳遣、文件的組織結構识埋,從而找到我們想要逆向的點凡伊。然后從該入口進入代碼分析階段,利用各種工具對程序本身的二進制文件進行分析窒舟,從而達到我們的目的系忙。
分為四大類:
1.監(jiān)測工具:用于嗅探惠豺、監(jiān)測银还、記錄目標程序行為的工具。常用的有Reveal, tcpdump, libNotifyWatch和PonyDebugger等洁墙。
2.開發(fā)工具:用于開發(fā)越獄代碼的工具蛹疯。最著名的就是Theos,能夠編譯生成Tweak插件热监。
3.反編譯器:主要是IDA捺弦,該工具橫跨Windows/Linux/Mac平臺,它將目標程序的可執(zhí)行文件作為輸入,然后輸出改程序的匯編代碼列吼,甚至是偽代碼幽崩。
4.調試器:主要是基于命令行的GDB。事實上寞钥,Xcode中的調試器只是GDB(GNU Debgger)或LLDB的圖形化包裝而已慌申。
摘自《iOS應用逆向工程》,官網(wǎng)是http://iosre.com/
以上內(nèi)容可能有所改動理郑,一切以原書為準蹄溉。感謝作者的分享。