美文网首页
iOS 恢复符号表

iOS 恢复符号表

作者: 烟影很美 | 来源:发表于2018-05-27 23:38 被阅读104次

一、恢复方法符号表

符号表(Symbol Table)是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址 [1]

  1. 瘦身可执行文件

恢复符号表需要可执行文件为单一架构, 这里使用如下命令
查看是否是fat的文件:

lipo -info WeChat

如果是fat的文件,那么执行下方命令进行瘦身, 这里使用微信为例, 得到arm64架构的可执行文件:

lipo WeChat -thin arm64 -output WeChat_arm64
  1. 想要恢复符号表, 需要使用工具: restore-symbol

克隆restore-symbol并编译得到可执行文件restore-symbol
单一架构的可执行文件

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

执行命令恢复符号表

./restore-symbol WeChat_arm64 -o WeChat_s

其中 WeChat_s为恢复了符号表的可执行文件

恢复符号表成功

二、恢复block符号表

restore-symbol还可以恢复block符号表, 这里使用到了ida_search_block.py文件和ida.

  1. 在 IDA 中运行 ida_search_block.py 脚本得到一个block_symbol.json文件
运行脚本
  1. 使用block_symbol.json恢复block符号表, 将block_symbol.json放在restore-symbol工具所在文件, 执行如下命令:
./restore-symbol WeiChat_s -o WeChat_block -j block_symbol.json

WeChat_block 即为恢复了block符号表的Mach-O文件

恢复前 恢复后

注意: 因为恢复符号表只能是单一架构恢复, 如果你要适配多个架构就需要将mach-o拆分, 分别进行恢复, 再合并mach-o文件. 这样得到的Mach-O文件重签名后才能在不同架构运行.

参考:
https://www.jianshu.com/p/967ff5740bd7
https://www.jianshu.com/p/aa39daafa316

相关文章

  • iOS逆向基础03-符号表

    一.什么是符号表 我们都知道iOS可以通过符号表来恢复堆栈的调用,那么什么是符号表呢? 我们可以通过符号表来还原类...

  • 2019年iOS逆向最新学习资料(四):还原符号表,再无障碍

    本文的部分理论支持,节选自这里:iOS符号表恢复。 前言 符号表历来是逆向工程中的“必争之地”,而iOS应用在上线...

  • iOS 恢复符号表

    一、恢复方法符号表 符号表(Symbol Table)是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符...

  • iOS恢复符号表

    什么是符号表? 符号表(Symbol Table)是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表...

  • iOS 符号表恢复

    一、恢复方法符号表 1.获取已经砸壳后的app 恢复符号表需要可执行文件为单一架构, 需要使用如下命令查看是否是f...

  • iOS逆向符号表恢复

    原文地址: http://blog.imjun.net/2016/08/25/iOS%E7%AC%A6%E5%8F...

  • iOS 逆向开发17:HOOK原理下(HOOK OC方法)

    iOS 逆向开发 文章汇总 目录 一、符号表之间的关联 二、去符号 三、恢复符号 四、使用fishhook HOO...

  • IOS逆向之恢复符号表

    以微信为例:(pp助手自行下载越狱版的) 准备工作 工具:1.restore-symbol ida 下载好 res...

  • 什么是符号表?

    前言 iOS 开发中经常回定位 bug 通过崩溃堆栈,此时我们需要借助符号表来恢复内存地址对应代码调用信息,为了解...

  • dsym

    iOS开发时经常需要接触符号表的概念,本文主要分享符号表相关知识,包括什么是符号表,符号表的作用,符号表的产生过程...

网友评论

      本文标题:iOS 恢复符号表

      本文链接:https://www.haomeiwen.com/subject/eppijftx.html