iOS逆向系列-逆向APP思路


界面分析

通過Cycript、Reveal。
對於Reveal安裝配置可參考配置iOS逆向系列-Reveal

通過Reveal找到內存中的UI對象

靜態分析

開發者編寫的所有代碼最終編譯鏈接到Mach-O文件中。

如果我們要分析App的代碼也就是說要分析Mach-O中的代碼。靜態的代碼分析常用的工具MachOView、class-dump、Hopper Disassermbler、ida等。

靜態分析 class-dump

class-dump作用就是把Mach-O文件的Class信息給dump出來(把類信息給導出來),生成對應的.h頭文件。
官方地址:http://stevenygard.com/projects/class-dump/
下載完工具包后將class-dump文件復制到Mac的/usr/local/bin目錄。這樣就可以識別class-dump命令了。
Mac的命令存儲在/usr/bin與/usr/local/bin中,目前Mac不允許用戶向/usr/bin做修改,我們將命令可以添加到/usr/local/bin中。

對Mach-O執行如下命令

class-dump -H Mach-O文件 -o 導出頭文件存放的文件目錄
class-dump -H 123 -o Headers/


找到對應的類,通過class-dump到處類的頭文件所有的方法,在根據hook編寫腳本注入程序的Mach-o文件中就可以了。

靜態分析 Hopper

上面我們可以通過class-dump獲取Mach-O文件的headers。對於方法的具體實現是沒辦法查看。我們可以通過Hopper工具分析Mach-O方法的大概實現。
安裝好Hopper后直接將Mach-O文件的拖入Hopper工具中。

動態調試

靜態分析還是不能解決問題,還需要動態調試,將程序運行起來運行到內存中進一步分析代碼的執行流程。也就是對運行中的APP進行代碼調試。
常用的動態調試工具 debugserver、LLDB。

代碼編寫

通過以上的分析,我們已經對APP的功能很清楚了。然后我們就可以編寫代碼注入到APP里面去。必要時還需要重新簽名、打包App。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM