class-dump是可以把Objective-C运行时的声明的信息导出来的工具。实质就是可以导出.h文件。用class-dump可以把未经加密的app的头文件导出来
如何反编译ipa包,查看所有的头文件和方法名(包括私有方法名)?
1.找到ipa包所在位置(这里的ipa包是通过archive后,export导出到桌面上的)
2.使用UnRAR工具解压ipa,选中XXX.ipa,选择打开方式 ,选择UnRAR,找到XXX.ipa路径,点击Open
使用UnRAR
打开后,XXX.ipa所在文件夹中会多出两个文件夹:Payload 、Symbols,此时Payload中存储的是对应的XXX.app 文件
方式1:XXX.app 文件
比起这种解压方式,我感觉下面的方法更便捷:
找到XXX.ipa ,在同文件夹下复制一份修改后缀为zip,双击zip解压,里面会多出一个XXX文件夹,XXX里面会存储两个文件夹:Payload 、Symbols ,Payload中存储的是对应的XXX.app文件
方式2: XXX.app 文件
或者直接右击ipa文件,选择打开方式,选择归档实用工具,XXX.ipa同目录下会多出一个XXX文件夹,XXX里面会存储两个文件夹:Payload 、Symbols ,Payload中存储的是对应的XXX.app文件
方式3: XXX.app 文件
无论采取哪种方式,目的一样,都能获得XXX.app
3.下载安装class-dump-3.5.dmg 链接:http://stevenygard.com/projects/class-dump/
3.1 下载完成以后双击.dmg的文件,将里面的class-dump拷贝到/usr/local/bin路径下(快捷键 shift + command + G 弹出前往文件夹)
前往文件夹
3.2 打开终端,在控制台输入class-dump,显示如下表示配置成功
class-dump命令
4.打开终端,先进入.app文件所在路径;再输入 class-dump 命令进行反编译
4.1 $ cd (将 XXX.app 所在文件夹Payload拖过来) XXX.app Path
4.2 $ class-dump -H XXX.app
反编译命令
此时,Payload文件夹中会出现XXX.ipa所有的.h文件(其中所有的方法名,包括.m中的私有方法名,都会在这些反编译的.h文件中展示出来)
反编译出.h文件
找出一些方法名(不只是在.h声明的公有方法,也包括在.m中用到的私有方法)中存在的敏感词,修改掉重新打包。