iOS逆向(class-dump)

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,即可以看到它的一些基本参数,如下:

iOS逆向(class-dump)_第1张图片

class-dump的对象是Mach-O格式的二进制文件,如Framework的库文件和APP的可执行文件,下面以一个APP看看class-dump的完整流程。

    1、将自己打包的ipa文件,修改后缀名,修改成.zip,然后进行解压

我的APP


处理结果

    2、前提是class-dump已经配置好了,配置参考http://www.jianshu.com/p/eeebb43a68b7

打开终端运行:

class-dump -H 解压完成的APP的文件路径/mexue2.app -o /Users/morris/Desktop/指定生成文件路径

处理结果:

iOS逆向(class-dump)_第2张图片

可以用自己的APP实践一下,然后用class-dump的头文件对比源文件中的头文件,是不是十分相似?出了一些参数类型呗改成Id,参数名用arg1、arg2表示之外,几乎就是一模一样的吧?class-dump帮我们排序后,头文件的可读性甚至变高了。


从UI层面切入代码层面,用反汇编工具和调试分析过二进制文件后,就可以整理分析结果,用开发工具写程序

你可能感兴趣的:(iOS逆向(class-dump))