iOS逆向工程之class-dump


class-dump是逆向工程中的利器,用來dump目標(biāo)對象的class信息工具。它利用Object-C語言的runtime特性,將存儲(chǔ)在Mach-O文件中的@interface和@protocol信息提取出來,并生成對應(yīng)的.h文件。

在安裝和使用過程中,遇到了兩個(gè)問題,將原因和解決辦法分享一下。

問題1:class-dump無法拖入/usr/bin目錄

原因:Mac當(dāng)前系統(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,進(jìn)入recovery模式。選擇打開Utilities下的終端,輸入:csrutil disable并回車,然后正常重啟Mac即可。

問題2:class-dump -H時(shí)報(bào)Error: Cannot find offset for address 0x580000000100bcd8 in stringAtAddress: 錯(cuò)誤

錯(cuò)誤截圖

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容