iOS逆向 class-dump的安裝和使用

1.class-dump

class-dump是用來dump目標文件的類信息的工具。它利用Objective-C語言的runtime的特性,將存儲在mach-O文件中的@interface和@protocol信息提取出來,并生成對應的.h文件爬虱。官方介紹如下:

This is a command-line utility for examining the Objective-C runtime information stored in Mach-O files. It generates declarations for the classes, categories and protocols. This is the same information provided by using ‘otool -ov’, but presented as normal Objective-C declarations, so it is much more compact and readable.

1.1安裝class-dump

下載地址:http://stevenygard.com/projects/class-dump/。打開鏈接后,選擇class-dump-3.5.dmg讥裤,進行下載。下載完成之后姻报,將dmg文件中的class-dump復制到/usr/bin目錄己英,并在終端執(zhí)行如下執(zhí)行進行賦權:

然后運行class-dump指令,即可看到如下結果:

image

1.2使用class-dump

執(zhí)行指令:

【說明】:

  • /Applications/Calculator.app:計算器app的路徑吴旋;
  • /Users/GofLee/Desktop/CalculateHeads:存放dump結果的頭文件文件夾路徑损肛。

執(zhí)行上面的指令之后,我們可以在 /Users/GofLee/Desktop/CalculateHeads 目錄下看到生成的.h列表:

image

從上面的結果可以看到荣瑟,我們有了這些.h文件之后荧关,就可以初步了解目標App的程序結構。后面可以結合Reveal和cycript工具褂傀,更精準的分析目標App某個頁面的功能實現忍啤。

同樣的,我們也可以導出AppKit仙辟、UIKit的頭文件:

【注意】:有時class-dump指令會執(zhí)行失敗同波,無法得到想要的頭文件,或頭文件的內容是加密的密文叠国。出現這種情況是因為class-dump的作用對象必須是未經加密的可執(zhí)行文件未檩,一般App Store中下載的App都是經過簽名加密的,這個時候需要先進行砸殼粟焊。

2.class-dump-z

class-dump-z 是對 class-dump 和 class-dump-x 的改進版冤狡,完全用C++重寫孙蒙,避免動態(tài)調用,這使得 class-dump-z 比 class-dump 和 class-dump-x快10倍左右悲雳,并且可以在 Linux挎峦、Mac、 iPhone 上運行合瓢。

下載地址:https://code.google.com/archive/p/networkpx/wikis/class_dump_z.wiki

其他同class-dump坦胶。

3.砸殼:dumpdecrypted

第一步:源碼下載:https://github.com/stefanesser/dumpdecrypted

第二步:使用make指令編譯源碼;

前兩步也可以省略晴楔,直接下載編譯好的dumpdecrypted.dylib(需要使用與iOS設備系統相同的版本)顿苇。

做完前兩步之后,會生成一個dumpdecrypted.dylib文件税弃,我們通過IExplorer軟件纪岁,將這個文件拷貝到需要砸殼的App的Documents目錄,如下圖所示:

image

接下來则果,通過終端和手機建立連接蜂科,具體指令參看Cycript內容。

cd到對應App的Documents路徑短条,執(zhí)行指令:

指令執(zhí)行結果:

image

這時导匣,Documents目錄下多了一個“xxxx.decrypted”文件,將該文件拷貝到電腦茸时,繼續(xù)使用class-dump進行頭文件分析贡定。

如果經過上面的操作,還是不能得到想要的頭文件可都,那么有可能是代碼使用的 OC 和 Swift 混編缓待,而 class-dump 是利用的 OC 的運行時機制,所以有 Swift 的代碼沒法 dump 出來渠牲,那就只有直接用 IDA 看了旋炒。

【說明】:

a.怎么獲取 App的Documents路徑?

通過cycript指令签杈,根據應用進程瘫镇,進入到應用,然后執(zhí)行如下指令獲却鹄选:

b.怎么獲取App的可執(zhí)行文件路徑铣除?

通過打印進程信息,是可以直接得到可執(zhí)行文件路徑的鹦付,指令如下:

結果如下:

image

c.執(zhí)行指令尚粘,有可能遇到如下所示錯誤:

image

遇到該錯誤的時候,按如下步驟操作:

  • 第一步:拷貝dumpdecrypted.dylib 文件到設備的 /usr/lib目錄下敲长;

  • 第二步:切換到mobile用戶郎嫁,指令如下:

  • 第三步:cd到 /var/mobile/Documents 目錄秉继,指令如下:

  • 第四步:執(zhí)行如下指令:

  • 第五步:在 /var/mobile/Documents 目錄下,可以看到 Evernote.decrypted 文件已經生成泽铛。

4.導出Frameworks 和 PrivateFrameworks 的頭文件

腳本可參考:https://github.com/EthanGHub/DumpFrameworks

下面標粗標紅的地方需要進行相應的修改:

復制代碼
復制代碼

命令執(zhí)行完尚辑,在用戶目錄下 會出現 Headers,里面包括了導出的Frameworks 和PrivateFrameworks 文件夾厚宰,如下圖所示:

image

5.參考資料

iOS app 逆向分析

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末腌巾,一起剝皮案震驚了整個濱河市遂填,隨后出現的幾起案子铲觉,更是在濱河造成了極大的恐慌,老刑警劉巖吓坚,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撵幽,死亡現場離奇詭異,居然都是意外死亡礁击,警方通過查閱死者的電腦和手機盐杂,發(fā)現死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哆窿,“玉大人链烈,你說我怎么就攤上這事≈壳” “怎么了强衡?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長码荔。 經常有香客問我漩勤,道長,這世上最難降的妖魔是什么缩搅? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任越败,我火速辦了婚禮,結果婚禮上硼瓣,老公的妹妹穿的比我還像新娘究飞。我一直安慰自己,他們只是感情好堂鲤,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布噪猾。 她就那樣靜靜地躺著,像睡著了一般筑累。 火紅的嫁衣襯著肌膚如雪袱蜡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天慢宗,我揣著相機與錄音坪蚁,去河邊找鬼奔穿。 笑死,一個胖子當著我的面吹牛敏晤,可吹牛的內容都是我干的贱田。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嘴脾,長吁一口氣:“原來是場噩夢啊……” “哼男摧!你這毒婦竟也來了?” 一聲冷哼從身側響起译打,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤耗拓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后奏司,有當地人在樹林里發(fā)現了一具尸體乔询,經...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年韵洋,在試婚紗的時候發(fā)現自己被綠了竿刁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡搪缨,死狀恐怖食拜,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情副编,我是刑警寧澤负甸,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站齿桃,受9級特大地震影響惑惶,放射性物質發(fā)生泄漏。R本人自食惡果不足惜短纵,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一带污、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧香到,春花似錦鱼冀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梗脾,卻和暖如春荸型,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炸茧。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工瑞妇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稿静,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓辕狰,卻偏偏與公主長得像改备,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蔓倍,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354