在逆向项目时候, 很重要的一环是需要查看符号表, 通过查看符号表我们能找到想要的方法, 从而对其实现有效的hook, 然而很多第三方App的符号表显示的都是乱码, 这就会阻滞我们的脚步, 下面就讲述如何恢复符号表:
1.下载restore-symbol :
https://github.com/tobefuturer/restore-symbol
恢复符号表,我们这里需要借助第三方项目restore-symbol
restore-symbol2.生成 restore-symbol 项目 mach-o 文件
- 使用终端cd到 restore-symbol 路径下,用过下列命令生成mach-o :
$make restore-symbol
生成的restore-symbol可执行文件
3. 生成目标文件单一架构的 mach-o
- 将目标项目的mach-o文件拷贝至 restore-symbol 文件夹路径下, 并将目标项目根据硬件架构进行拆分,我们在这里拆分为 arm64 硬件架构,使用下列命令:
$lipo WeChat -thin arm64 -output WeChat_arm64
生成 arm64可执行文件
4. 恢复mach-o文件的符号表
通过命令:
./restore-symbol WeChat_arm64 -o WeiChat
image.png
5. 将target 的 app中的mach-o 替换掉
注意: 替换后的mach-o名称一定要和原app包内容中mach-o文件名一致
再次运行进入断点就可以看到符号表了
函数栈
网友评论