【iOS逆向】iOS符号表还原

2,082 阅读1分钟

前言

本人ios逆向小白,先模仿再创新。今天模仿的是杨君大佬的博客iOS符号表恢复&逆向支付宝

1.博客读后感

符号表是MachO中的组成部分,大厂在上线前,都会裁去符号表,无符号的方法增加逆向的成本。

2.本人实践(逆向bilibili)

常规操作:抓包,脱壳,MonkeyDev重签。 未还原符号的MachO文件在MonkeyDev中下断点,查看调用堆栈信息如图:

image.png

还原后的MachO文件在MonkeyDev中下断点,查看调用堆栈信息如图:

image.png

3.如何还原

借助大佬的工具:restore-symbol

3.1.下载编译

git clone --recursive https://github.com/tobefuturer/restore-symbol.git
cd restore-symbol && make
./restore-symbol

3.2.还原符号

./restore-symbol ./bili-universal -o ./bili-universal-symbol

3.3.常见问题

 Terminating app due to uncaught exception 
 'NSInternalInconsistencyException', reason: 'Invalid parameter not
 satisfying: moduleName.length == length'

解决方案:这个错误主要是竞品中有swift代码造成的,解决方案就是找到对应的类,用最新的class-dump中的类去替换,文末有已经替换好的文件。

文章中附件私聊作者获取