查看私有方法

簡介

Class-dump 是一款用來檢測存儲在 Mach-O 文件裏的 Objective-C runtime 信息的命令行工具。他可以檢測出 class,category,protocol 的聲明。和 'otool -ov' 產生的信息類似,但是 Class-dump 產生的是 Objective-C 語法格式的聲明,所以它的可讀性更高。

爲什麼使用 Class-dump

它一個強大的工具。有了它,你可以查看一些閉源的應用,framework 及 bundle。查看不同版本之間接口的變化。體驗私有庫,或者查看 AppKit 有哪些私有的 API。學習 Mail.app 使用了哪些擴展的私有API。

下載

安裝

下載完成後把 class-dump-3.5.dmg 內的 class-dump 拷貝到 /usr/bin/ 路徑下,並且賦予執行權限。

sudo cp class-dump /usr/bin

sudo chmod 777 /usr/bin/class-dump

使用

class-dump [options] 

where options are: -a 顯示實例變量的偏移量。 -A 顯示實現的地址。 --arch 從一個通用架構類型的二進制文件(ppc,ppc64,i386,x86_64)中選擇一個指定的架構類型。 -C 僅顯示匹配正則表達式的類。 -f 在方法命中查找字符串。 -H 在當前目錄生成頭文件,或者使用 -o 參數指定生成頭文件的目錄。 -I 對 類,categories,procotols 按照繼承關係排序(會覆蓋 -s 參數) -o 

-H 使用。 -r 遞歸擴展 frameworks,並且修復 VM 共享庫。 -s 把類和 categories 按名稱排序。 -S 把方法按名稱排序 -t 限制輸出頭,用於測試 --list-arches 列出文件的架構類型, 然後退出 --sdk-ios 指定 iOS SDK 版本 (將會查找 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk --sdk-mac 指定 Mac OS X 版本 (將會查找 /Developer/SDKs/MacOSX.sdk --sdk-root 指定 SDK 完整根路徑(或者簡單使用 --sdk-ios/--sdk-mac)

實踐

我們知道從 App Store 下載的 App 都是經過加密的,有一層殼,我們得先砸殼,本文不講砸殼,本只講 class-dump 的使用。

我隨機選取了我手機裏的一款 App,名字叫《早朝》,是一款簡單的 RSS 閱讀工具,(說實話,簡單到完全沒什麼逆向的價值)。砸完殼之後的文件可以在 這裏下載,然後我們直接對其 dump 一把。

class-dump -H iOSRSS.decrypted -o iOSRSS.h

然後我們可以看到在當前目錄下生成了 iOSRSS.h 的文件夾,所有 dump 出來的頭文件都在裏面了。

然後我們就可以查看每個類,category,protocol 的聲明瞭。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章