010——逆向之恢复函数的符号表

010——逆向之恢复函数的符号表_第1张图片
函数符号表

在逆向项目时候, 很重要的一环是需要查看符号表, 通过查看符号表我们能找到想要的方法, 从而对其实现有效的hook, 然而很多第三方App的符号表显示的都是乱码, 这就会阻滞我们的脚步, 下面就讲述如何恢复符号表:

1.下载restore-symbol :

https://github.com/tobefuturer/restore-symbol

恢复符号表,我们这里需要借助第三方项目restore-symbol

010——逆向之恢复函数的符号表_第2张图片
restore-symbol

2.生成 restore-symbol 项目 mach-o 文件

  • 使用终端cd到 restore-symbol 路径下,用过下列命令生成mach-o :
$make restore-symbol
010——逆向之恢复函数的符号表_第3张图片
010——逆向之恢复函数的符号表_第4张图片
生成的restore-symbol可执行文件

3. 生成目标文件单一架构的 mach-o

  • 将目标项目的mach-o文件拷贝至 restore-symbol 文件夹路径下, 并将目标项目根据硬件架构进行拆分,我们在这里拆分为 arm64 硬件架构,使用下列命令:
$lipo WeChat -thin arm64 -output WeChat_arm64
010——逆向之恢复函数的符号表_第5张图片
生成 arm64可执行文件

4. 恢复mach-o文件的符号表

通过命令:

./restore-symbol WeChat_arm64 -o WeiChat
010——逆向之恢复函数的符号表_第6张图片
image.png

5. 将target 的 app中的mach-o 替换掉

010——逆向之恢复函数的符号表_第7张图片

注意: 替换后的mach-o名称一定要和原app包内容中mach-o文件名一致

再次运行进入断点就可以看到符号表了

010——逆向之恢复函数的符号表_第8张图片
函数栈

你可能感兴趣的:(010——逆向之恢复函数的符号表)