1,在iOS逆向工程中,用 class-dump 可以导出App头文件;但是,从App Store 下载的App,都是加密过的,直接用 class-dump ,导出结果只会什么都没有,或者只有一个:CDStructures.h 文件;因此,对于这种情况,首先要做的就是:砸壳;
2,砸壳工具有:AppCrackr、Clutch、dumpcrypted 等;由于 AppCrackr 、Clutch 暴力砸壳、操作简单,招致公愤,因此一些核心功能,已经下架,在高级系统中,已不能使用;因此,推荐: dumpcrypted 砸壳工具。工具获取及使用方法,参考:https://github.com/stefanesser/dumpdecrypted
3,当砸壳完毕后,将砸壳生成的 ***.decrypted 文件拷贝至MAC,之后使用 class-dump 导出头文件即可;
4,注意:当砸壳完毕后,使用 class-dump 仍然只导出 CDStructures.h 一个文件,则可能架构选择错误;因为 dumpdecrypted 只会砸你手机处理器对应的那个壳,fat binary 的其它部分仍然是有壳的,而 class-dump 的默认目标又不是被砸壳的那个部分,因此很有可能就会报错;
5,当出现4 中情况时,指定下架构即可,命令示例:class-dump --arch armv7 hello.decrypted -H -o ./heads/