iOS-Security[7]-反汇编

Hopper Disassembler 和 IDA 是两款可以将执行文件(Mach-O)反汇编的工具。

Hopper Disassembler

下载

Hopper Disassembler 是一款反汇编的工具,直接下载安装即可。

执行

以 QQ音乐为例,先从 IPA 中解析出 APP 文件,再从 APP 文件中找到可执行文件:

iOS-Disassembler-QQMusic

将该文件拖入到 Hopper Disassembler中:

iOS-Disassembler-Hopper-Result

可以看到,左边是所有类以及方法,包括共有和私有方法都可以看到,中间是方法的汇编源码,包含了其寻址地址,可以用于 LLDB 中创建断点,以及查看变量,右边还有一些粗略的 OC 信息,可以作为阅读参考。

注意,Hopper Disassembler 的使用需要先破壳,流程参考iOS-Security[3]-破解

修改

Hopper Disassembler 支持直接修改汇编指令,操作路径:

Modify > Assemble Instruction

例如将 jne 修改为 jmp,绕开一些逻辑判断:

iOS-Disassembler-Hopper-Modify

完成后,执行生成新的可执行文件:

File > Produce New Executable

IDA

下载

IDA 是一款反汇编的工具,直接下载安装即可。

执行

将 QQ音乐 的可执行文件拖入到 IDA 中:

iOS-IDA

但是,貌似 Demo 版本不支持 64 位的,等后面拿到正式版再补充。

iOS-IDA-64