iOS逆向工程之class-dump
2016-07-12 本文已影响4123人
黄花菜先生
class-dump是逆向工程中的利器,用来dump目标对象的class信息工具。它利用Object-C语言的runtime特性,将存储在Mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件。
在安装和使用过程中,遇到了两个问题,将原因和解决办法分享一下。
问题1:class-dump无法拖入/usr/bin目录
原因:Mac当前系统为Mac OS X 10.11 El Capitan,对于Mac OS X 10.11 El Capitan用户,由于系统启用了SIP(System Integrity Protection), 导致root用户也没有权限修改/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,后来经过证实,该项目确实是用OC和Swift混编。class-dump是利用Object-C语言的runtime特性,提取头文件,因此我认为应该是这个原因。大家如果有不同见解,望告知。