? ? ? 在逆向過程中事期,如果想分析一個應(yīng)用中類的組成以及類中有哪些方法次泽,可以利用class-dump導(dǎo)出類的頭文件和頭文件中的方法竿秆,不過在class-dump前搜骡,必須要先將應(yīng)用砸殼,比如用dumpdecrypted來進(jìn)行砸殼操作负蚊,然后導(dǎo)出砸殼后的應(yīng)用神妹。
一、class_dump簡介
? ? ? class-dump是一個命令工具家妆,可以對砸殼后的二級制文件進(jìn)行分析鸵荠,導(dǎo)出頭文件,其原理是根據(jù)應(yīng)用的MACH-O文件中類和方法信息伤极,將應(yīng)用中的類和方法導(dǎo)出來的蛹找。
class-dump下載地址:https://github.com/nygard/class-dump
二、class-dump編譯
下載完class-dump的源文件以后哨坪,用xcode打開文件庸疾,然后選擇class-dump運行,如下圖所示:
然后在product文件中找到編譯后的二進(jìn)制文件当编,如下圖所示:
這樣就得到了class-dump的可執(zhí)行文件了届慈。
三、class-dump的使用
得到class-dump的可執(zhí)行文件以后,就可以導(dǎo)出應(yīng)用的類的頭文件了
我使用的命令如下:
~/Documents/class-dump -s -S -H --arch arm64 ~/Desktop/WeChat.decrypted -o? ~/Desktop/header6.3-arm64
以下是?class-dump [options]選項的參數(shù)含義
-a? 顯示實例變量偏移
-A? 顯示實現(xiàn)地址
–arch選擇一個指定的架構(gòu)忿偷,如ppc, ppc7400, ppc64, i386, x86_64
-C只顯示同正則表達(dá)式匹配的類
-f在方法名中查找字符串
-H? 在當(dāng)前目錄生成頭文件金顿,或者在用-o選項指定的目錄生成
-I? ? 對類,目錄鲤桥,協(xié)議 按照繼承關(guān)系(inheritance)進(jìn)行排序(覆蓋-s選項)
-o為-H選項指定輸出目錄
-r? 遞歸擴(kuò)展framework揍拆,并修復(fù)VM共享庫
-s? 按名稱對classes和categories進(jìn)行排序
-S? 按名稱對方法(method)進(jìn)行排序
四、class-dump結(jié)果(微信為例)
隨意打開一個頭文件茶凳,內(nèi)容如下:
參考:
https://github.com/nygard/class-dump
http://www.cnblogs.com/zxtx/articles/2307100.html