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.

一溢谤、安裝 class-dump

下載地址:http://stevenygard.com/projects/class-dump/甘磨。

打開鏈接后,選擇 class-dump-3.5.dmg患整,進行下載拜效。下載完成之后喷众,將 dmg 文件中的 class-dump 復制到 /usr/local/sbin 目錄,并在終端執(zhí)行如下命令進行賦權:

sudo chmod 777 /usr/local/sbin/class-dump

運行 /usr/local/sbin/class-dump 指令紧憾,即可看到如下結果:

其他文章說的 /bin//usr/bin/ 目錄到千,都是不能拷貝文件進去的。

對于 Mac OS X 10.11 El Capitan 及以上版本赴穗,由于系統(tǒng)啟用了 SIP(System Integrity Protection)憔四,導致 root 用戶也沒有權限修改 /usr/bin/ 或者 /bin/ 目錄。

解決辦法:重啟 Mac般眉,出現(xiàn)黑屏時按住 command+R 進入恢復模式了赵。選擇打開 Utilities下的終端,輸入:csrutil disable 并回車甸赃,然后正常重啟 Mac 即可柿汛。

記得使用完后按同樣的步驟啟用 SIP,命令為 csrutil enable埠对。

class-dump無法拖入/usr/bin目錄

二络断、使用 class-dump

執(zhí)行命令:

/usr/local/sbin/class-dump -H /Users/cykj/Desktop/WeChat.decrypted -o /Users/cykj/Desktop/head

說明:

  • /Users/cykj/Desktop/WeChat.decrypted:砸殼后的文件目錄
  • /Users/cykj/Desktop/head:存放 dump 結果的 .h 文件的路徑。

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

有了這些 .h 文件之后貌笨,可以初步了解目標 App 的程序結構。后面可以結合Reveal 和 cycript 工具襟沮,更精準的分析目標 App 某個頁面的功能實現(xiàn)锥惋。

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

/usr/local/sbin/class-dump -H /System/Library/Frameworks/AppKit.framework -o /Users/cykj/Desktop/head/AppKitHeaders

【注意】:有時 class-dump 指令會執(zhí)行失敗膀跌,無法得到想要的頭文件,或頭文件的內容是加密的密文硅则。出現(xiàn)這種情況是因為 class-dump 的作用對象必須是未經加密的可執(zhí)行文件淹父,一般 App Store 中下載的 App 都是經過簽名加密的株婴,這個時候需要先進行砸殼怎虫。

【報錯】:class-dump -H 時報 Error: Cannot find offset for address 0x580000000100bcd8 in stringAtAddress:

原因:項目是用 OC 和 Swift 混編的,需要使用新的 class-dump困介,下載地址:https://github.com/AloneMonkey/MonkeyDev class-dump 文件在 bin 目錄下大审。

三、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 一樣圈澈。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末惫周,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子康栈,更是在濱河造成了極大的恐慌递递,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啥么,死亡現(xiàn)場離奇詭異登舞,居然都是意外死亡,警方通過查閱死者的電腦和手機悬荣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門菠秒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人隅熙,你說我怎么就攤上這事稽煤。” “怎么了囚戚?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵酵熙,是天一觀的道長。 經常有香客問我驰坊,道長匾二,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任拳芙,我火速辦了婚禮察藐,結果婚禮上,老公的妹妹穿的比我還像新娘舟扎。我一直安慰自己分飞,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布睹限。 她就那樣靜靜地躺著譬猫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪羡疗。 梳的紋絲不亂的頭發(fā)上染服,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音叨恨,去河邊找鬼柳刮。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的秉颗。 我是一名探鬼主播痢毒,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚕甥!你這毒婦竟也來了闸准?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤梢灭,失蹤者是張志新(化名)和其女友劉穎夷家,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體敏释,經...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡库快,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钥顽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片义屏。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蜂大,靈堂內的尸體忽然破棺而出闽铐,到底是詐尸還是另有隱情,我是刑警寧澤奶浦,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布兄墅,位于F島的核電站,受9級特大地震影響澳叉,放射性物質發(fā)生泄漏隙咸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一成洗、第九天 我趴在偏房一處隱蔽的房頂上張望五督。 院中可真熱鬧,春花似錦瓶殃、人聲如沸充包。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽基矮。三九已至,卻和暖如春修壕,著一層夾襖步出監(jiān)牢的瞬間愈捅,已是汗流浹背遏考。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工慈鸠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓青团,卻偏偏與公主長得像譬巫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子督笆,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內容