准备
1、下载及生成restore-symbol
-
如果按照文档步骤生成没成功,类似下面
-
可以直接下载项目,在xcode中编译出restore-symbol
-
配置到环境变量中,随时随地爱用就用
马不停蹄开始操作
一、恢复方法符号表
1、查看MachO文件支持的架构,并瘦身成单一架构(restore-symbol一次只支持单一架构)
- 查看支持的架构,使用命令
lipo -info MachO文件路径
- 瘦身成单一架构,使用命令
lipo machO文件路径 -thin arm64 -output 瘦身后的machO文件路径
2、开始恢复符号表
- 像我一样配置了环境变量的话,直接在当前目录使用命令
restore-symbol Runner_arm64 -o Runner -
没有配置的话,进入restore-symbol所在文件夹,使用命令
./restore-symbol Runner_arm64 -o Runner
3、重新生成ipa
-
替换原来的machO文件,然后在Payload文件夹使用命令
zip –ry 输出文件 输入文件 -
结果如下(zip -ry newIPA.ipa Payload)
4、测试(使用MonkeyDev创建的项目)
二、恢复了Block的符号表
1、找到ida_search_block.py并复制,在项目的search_oc_block文件夹里。
2、打开IDA,执行ida_search_block.py,生成block_symbol.json文件
3、开始恢复符号表
-
使用命令
./restore-symbol Runner -o Runner_block -j block_symbol.json