Hopper Disassembler 和 IDA 是两款可以将执行文件(Mach-O)反汇编的工具。
Hopper Disassembler
下载
Hopper Disassembler 是一款反汇编的工具,直接下载安装即可。
执行
以 QQ音乐为例,先从 IPA 中解析出 APP 文件,再从 APP 文件中找到可执行文件:
将该文件拖入到 Hopper Disassembler中:
可以看到,左边是所有类以及方法,包括共有和私有方法都可以看到,中间是方法的汇编源码,包含了其寻址地址,可以用于 LLDB 中创建断点,以及查看变量,右边还有一些粗略的 OC 信息,可以作为阅读参考。
注意,Hopper Disassembler 的使用需要先破壳,流程参考iOS-Security[3]-破解。
修改
Hopper Disassembler 支持直接修改汇编指令,操作路径:
Modify > Assemble Instruction
例如将 jne 修改为 jmp,绕开一些逻辑判断:
完成后,执行生成新的可执行文件:
File > Produce New Executable
IDA
下载
IDA 是一款反汇编的工具,直接下载安装即可。
执行
将 QQ音乐 的可执行文件拖入到 IDA 中:
但是,貌似 Demo 版本不支持 64 位的,等后面拿到正式版再补充。