admin管理员组

文章数量:1582046

获取符号表偏移前的地址

  1. 当App准备上线打生产环境的包时,编译器去掉符号表信息;所以在iOS逆向调试的时候,lldb调试中查看代码的函数调用栈时符号偏移前的地址
    = 符号偏移后的地址(lldb断点地址) - ASLR偏移地址,其中 ASLR偏移地址是App启动后系统分配的内存区域的的首地址,在lldb中通过image list -o
    -f来获取某一进程的ASLR地址。如下图获取QQ的ASLR地址:image list -o -f | grep QQ

恢复符号表

  1. 克隆第三方库: git clone https://github/tobefuturer/restore-symbol
  2. 到库目录里: cd restore-symbol
  3. 编译成功后会在当前目录生成一个 restore-symbol 可执行文件 : make
  4. 在macOS终端运行(设置为全局命令): sudo cp ./restore-symbol /usr/local/bin
  5. cd 到砸壳去签名后文件的目录
  6. lipo -info WeChat.decrypted 查看是否是fat的文件,如果是fat的文件,那么看 7
  7. fat文件瘦身:lipo WeChat.decrypted -thin arm64 -output
    WeChat.decrypted.arm64
  8. 获取符号表:restore-symbol WeChat.decrypted.arm64 -o WeChat.symbol
  9. 文件 WeChat.symbol 是我们恢复符号表的文件,如果是瘦身回来的直接使用瘦身的,不用合并
  10. WeChat.app 是微信的原包文件,替换掉原先的M

本文标签: 符号