天天看點

逆向工程三之工具篇

一、摘要

本文主要介紹逆向所用到工具,包括: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;

逆向工程三之工具篇