1,iOS逆向工程的工具可以分为四大类:监测工具,反汇编工具(disassembler),调试工具(debugger),以及开发工具
2,Reveal(UI层),IDA(反汇编),LLDB(调试工具)
3,class-dump
首先去http://stevenygard.com/projects/class-dump下载最新版本的class-dump,下载到的class-dump.dmg后,将dmg文件里的class-dump复制到"/usr/bin"下,复制的过程会因为权限问题无法导致复制失败
解决方法如下:
1.重启mac
2.在启动时按下cmd+r直到出现苹果logo
3.这时有可能要你选择语言
4.选择工具(Utilities)打开终端(terminal)执行如下命令 csrutil disable reboot
5.在次启动后重新执行移动命令~OK
然后在Terminal中执行“sudo chmod 777 /usr/bin/class-dump”命令赋予其执行权限,运行class-dump,即可以看到它的一些基本参数,如下:
class-dump的对象是Mach-O格式的二进制文件,如Framework的库文件和APP的可执行文件,下面以一个APP看看class-dump的完整流程。
1、将自己打包的ipa文件,修改后缀名,修改成.zip,然后进行解压
2、前提是class-dump已经配置好了,配置参考http://www.jianshu.com/p/eeebb43a68b7
打开终端运行:
class-dump -H 解压完成的APP的文件路径/mexue2.app -o /Users/morris/Desktop/指定生成文件路径
处理结果:
可以用自己的APP实践一下,然后用class-dump的头文件对比源文件中的头文件,是不是十分相似?出了一些参数类型呗改成Id,参数名用arg1、arg2表示之外,几乎就是一模一样的吧?class-dump帮我们排序后,头文件的可读性甚至变高了。
从UI层面切入代码层面,用反汇编工具和调试分析过二进制文件后,就可以整理分析结果,用开发工具写程序