Class - dump
逆向原理
动态调试 通过界面调试Cycript\Xcode LLDB!
静态分析 利用我们之前学习的汇编代码,分析三方APP的源码!(通过 ida 等工具)
代码注入 注入的其实是动态库!HOOK代码 改变原来程序的执行流程!
重签名 安装在非越狱手机上面
class-dump
class-dump 是用来dump目标文件的类信息的工具。它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件。官方介绍如下:
This is a command-line utility for examining the Objective-C runtime information stored in Mach-O files. It generates declarations for the classes, categories and protocols. This is the same information provided by using ‘otool -ov’, but presented as normal Objective-C declarations, so it is much more compact and readable.
如果环境变量没有配置或者配置错误的话,在终端中会是这样:
![](https://img.haomeiwen.com/i4790087/2266d71019ab7d33.png)
环境变量配置
我是在 ~/.bash_profile 中配置的,感觉你配置在哪里都可以,只要终端能访问到就可以了,我的是这样配置的:
![](https://img.haomeiwen.com/i4790087/573eddee32a046f1.png)
(另外,附上 /bin,/sbin,/usr/sbin,/usr/bin 目录之简单区别:https://www.cnblogs.com/fengjunhua/p/7737607.html)
现在默认加载的是 zsh, 即会加载 zshrc 文件,在 zshrc 底部加上这个就可以了:
![](https://img.haomeiwen.com/i4790087/0f3baf861eeb5faf.png)
这样 class-dump 就可以使用了,使用它就要找到它才可以:
![](https://img.haomeiwen.com/i4790087/88ea210acafa312e.png)
更改默认加载的 bash
cash -s /bin/zsh
加载默认的则为
cash -s /bin/bash
都在 bin 目录下。
重点
如何导出头文件
$ class-dump -H MachO文件Path -o 头文件路径
如进入 MachO 文件目录,导出到 WechatHeaders 文件下:
class-dump -H Wechat -o WechatHeaders
稍等一下就导出成功:
![](https://img.haomeiwen.com/i4790087/be90cf0b96d14e38.png)