1、简介
classdump-dyld 顾名思义就是把Mach-O文件夹的class信息给动态的dump出来,生成对应的.h头文件,它需要依赖Cycript环境使用。有些情况是无法通过class-dump导出头文件的,比如SpringBoard的可执行文件无法利用class-dump导出头文件。
2、安装
在iPhone上用Cydia安装classdump-dyld:
3、API
classdump-dyld有下面几个用法:
导出某个类的头文件:
cy# classdumpdyld.dumpClass(SpringBoard)
导出整个Bundle的所有头文件:
cy# classdumpdyld.dumpBundle([NSBundle mainBundle])
cy# classdumpdyld.dumpBundle([NSBundle bundleWithIdentifier:@”com.apple.UIKit”])
根据一个类导出这个类所在Bundle的全部头文件:
cy# classdumpdyld.dumpBundleForClass(SBIconView)
4、使用
以SpringBoard为例,进入cycript环境:
$ cycript -p SpringBoard
导入classdump-dyld头文件:
cy# @import net.limneos.classdumpdyld
导出SBIconView所在Bundle的全部头文件:
cy# classdumpdyld.dumpBundleForClass(SBIconView)
@"Wrote all headers to /tmp/SpringBoardHome"
导出的头文件存放在iPhone的/tmp/SpringBoardHome目录下: