好想用 doxygen 畫iOS app的class繼承關係。
有沒有比 class-dump-z 更直觀的分析工具?
利器 iNalyzer 隆重登場~
一、iNalyzer的安裝
在iPhone端:
1)進入cydia新增源 http://appsec-labs.com/cydia/
2)搜尋 iNalyzer 並安裝
二、Doxygen和Graphviz的安裝
在Mac端:
brew install doxygen graphviz
三、解密支付寶app
1)檢視可解密的app
1 2 3 4 5 |
cd /Applications/iNalyzer5.app ./iNalyzer5 usage: ./iNalyzer5 [application name] [...] Applications available: Portal Tenpay |
2)解密支付寶app
1 2 3 4 5 6 7 8 9 10 11 12 13 |
./iNalyzer5 Portal got params /var/mobile/Applications/4763A8A5-2E1D-4DC2-8376-6CB7A8B98728/Portal.app/ Portal.app 800 iNalyzer is iNalyzing Portal... iNalyzer:crack_binary got /var/mobile/Applications/4763A8A5-2E1D-4DC2-8376-6CB7A8B98728/Portal.app/Portal /tmp/iNalyzer5_3f0d8773/Payload/Portal.app/Portal Dumping binary...helloooo polis? helloooo polis? iNalyzer:Creating SnapShot into ClientFiles iNalyzer:SnapShot Done iNalyzer:Population Done iNalyzer:Dumping Headers iNalyzer:Patching Headers /bin/sh: /bin/ls: Argument list too long ls: cannot access *_fixed: No such file or directory /var/root/Documents/iNalyzer/支付寶錢包-v8.0.0.ipa |
將解密後的ipa拷貝到本地
四、修改doxMe.sh指令碼
解壓ipa, cd 到 /支付寶錢包-v8.0.0/Payload/Doxygen 下找到 doxMe.sh
1 2 3 |
#!/bin/sh /Applications/Doxygen.app/Contents/Resources/doxygen dox.template && open ./html/index.html |
我們是通過brew安裝的 doxygen,所以修改指令碼為:
1 2 3 |
#!/bin/sh doxygen dox.template && open ./html/index.html |
五、執行doxMe.sh指令碼
1 |
./doxMe.sh |
完成後瀏覽器會自動 open 生成的html檔案
六、檢視資訊
通過index.html我們可以直觀的檢視到 Strings analysis , ViewControllers,Classes 等幾大類的資訊。
在Classes->Class Hierarchy 可以檢視到類繼承圖示。
支付寶app class Hierarchy 結果冰山一角: