一、摘要
本文主要介紹逆向所用到工具,包括:UI分析Reveal,頭檔案導出class-dump,.m檔案檢視Hopper Disassembler,檢視Mach-O檔案結構指令工具otool、可視化工具MachOView
二、Reveal
• Mac安裝:https://pan.baidu.com/s/1lz9lwTKXD9bS8DnvT9gkBQ 提取密碼:b31u
• iOS端安裝:Cydia上搜尋“reveal”,選擇“Reveal2Loader”并安裝,再重新開機SpringBoard
1. 重新開機SpringBoard;
2. 打開需要調試的app;
• 覆寫iOS端的RevealServer檔案
1. 找到Mac上的“RevealServer”檔案;
2. 找到iOS裝置上的“RevealServer”檔案;
說明:如果沒有“RHRevealLoader”檔案夾,可手動建立;
3. 重新開機SpringBoard;
• 使用: iOS端打開app,Mac打開Reveal
說明:如果網絡不好,WiFi模式比USB模式會很卡;
說明:
1>該軟體隻能檢視view視圖層級結構,無法看vc層級結構;
2>若要檢視vc層級結構,可利用mjcript.cy庫中的MJChildVcs()方法來檢視;
3>若無法檢視,則先重新開機app,再重新開機Reveal;
三、class-dump
• 下載下傳:http://stevenygard.com/projects/class-dump/
• 安裝:/usr/local/bin/

• 使用
1. 找到一個IPA包,檢視包内容,找到裡面的Mach-O二進制檔案(一般和包名同);
2. cd到Mach-O檔案所在目錄下(可事先複制一份出來),導出所有的.h檔案;
3. 将.h檔案夾拖入xcode;
說明:如果檔案較多的話,拖入xcode顯示會很卡,一般直接拖入“Sublime Text”顯示(很順暢);
四、Hopper Disassembler
說明:将Mach-O檔案機器語言,反編譯成彙編代碼、OC\Swift僞代碼
• 下載下傳安裝:https://www.hopperapp.com/download.html?
• 打開Hopper,選擇試用
• 拖入Mach-O檔案
說明:如果檔案很大,分析會很慢(左上角進度條,或者右下角”working…”);可以等分析完畢後,再進行調試;
• 示範:搜尋一個方法,點選“2”,檢視代碼實作(“3”處)
五、otool指令行工具
• otool指令
• 找到一個Mach-O檔案(以下以“釘釘”為例),檢視其結構類型
說明:是一個胖二進制檔案,有兩種架構;
六、MachOView
• 下載下傳位址
• 将Mach-O檔案(以“釘釘”為例)拖入MachOView
說明:兩種架構,arm64和armv7;