
class-dump是逆向工程中的利器,用來dump目標對象的class信息工具。它利用Object-C語言的runtime特性,將存儲在Mach-O文件中的@interface和@protocol信息提取出來,并生成對應(yīng)的.h文件。
在安裝和使用過程中,遇到了兩個問題,將原因和解決辦法分享一下。
問題1:class-dump無法拖入/usr/bin目錄
原因:Mac當前系統(tǒng)為Mac OS X 10.11 El Capitan,對于Mac OS X 10.11 El Capitan用戶,由于系統(tǒng)啟用了SIP(System Integrity Protection), 導(dǎo)致root用戶也沒有權(quán)限修改/usr/bin目錄。
解決辦法:重啟Mac,按住command+R,進入recovery模式。選擇打開Utilities下的終端,輸入:csrutil disable并回車,然后正常重啟Mac即可。
問題2:class-dump -H時報Error: Cannot find offset for address 0x580000000100bcd8 in stringAtAddress: 錯誤

錯誤截圖
原因:http://bbs.iosre.com/t/xue-xi-yong-dumpdecryptedgei-appza-ke-suo-yu-dao-de-wen-ti/813 我在iosre看到一篇帖子說是項目中可能用到了swift,后來經(jīng)過證實,該項目確實是用OC和Swift混編。class-dump是利用Object-C語言的runtime特性,提取頭文件,因此我認為應(yīng)該是這個原因。大家如果有不同見解,望告知。