{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "https://github.com/tobefuturer/restore-symbol/blob/83ccb9085339750fd777b0707641b68c7661a388/source/restore-symbol.m",
    "https://github.com/tobefuturer/restore-symbol/blob/83ccb9085339750fd777b0707641b68c7661a388/makefile",
    "https://github.com/tobefuturer/restore-symbol/blob/83ccb9085339750fd777b0707641b68c7661a388/.gitmodules",
    "https://github.com/tobefuturer/restore-symbol/blob/83ccb9085339750fd777b0707641b68c7661a388/restore-symbol.xcodeproj/project.pbxproj",
    "https://github.com/tobefuturer/restore-symbol/blob/83ccb9085339750fd777b0707641b68c7661a388/search_oc_block/ida_search_block.py",
    "https://github.com/0xced/class-dump/blob/a8877b6695f317816322134944a410de09da4911/README.md"
  ],
  "category": "native-analysis",
  "description_en": "macOS command-line tool that writes a stripped iOS app's Mach-O executable back out with a rebuilt symbol table, so a debugger such as lldb can break on and display Objective-C method names. It recovers method names and addresses from the binary's Objective-C metadata through class-dump, and can merge extra name and address pairs from a JSON file, such as the block symbols found by the bundled IDA script.",
  "description_zh": "运行于 macOS 的命令行工具，为已剥离符号的 iOS 应用 Mach-O 可执行文件重建符号表并输出新文件，使 lldb 等调试器能按 Objective-C 方法名设置断点并显示名称。它借助 class-dump 从二进制的 Objective-C 元数据中恢复方法名和地址，也可以从 JSON 文件合并额外的名称与地址，例如随附 IDA 脚本找到的 block 符号。",
  "entry_url": "https://awesomerea.org/resources/restore-symbol/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/restore-symbol/",
  "evidence_url": "https://github.com/tobefuturer/restore-symbol/blob/83ccb9085339750fd777b0707641b68c7661a388/README.md",
  "group": "tools",
  "id": "restore-symbol",
  "json_url": "https://awesomerea.org/resources/restore-symbol/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/restore-symbol/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/restore-symbol/index.md",
  "name": "restore-symbol",
  "name_zh": "restore-symbol iOS 符号表恢复工具",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "There are no releases or tags; the reviewed master commit of 2019-04-27 is the latest, and the repository has no tests or CI. The README covers Objective-C methods and blocks only and does not mention Swift symbols.",
    "Builds on macOS with Xcode: make initializes the pinned class-dump submodule (0xced's fork) and runs xcodebuild on a project targeting macOS 10.11. The block-symbol script search_oc_block/ida_search_block.py runs inside IDA, uses Python 2 print statements and the legacy idaapi.get_inf_structure call, and writes block_symbol.json.",
    "Input is a thin armv7 or arm64 Mach-O executable from an app the user is authorized to analyze; the tool rejects fat files with a request to thin them using lipo, and writes a new output file instead of changing the input. The README then re-signs the bundle with the user's own developer certificate and debugs it on a device with lldb. The repository contains source and a README screenshot, no app binaries.",
    "There is no license file and GitHub detects none, so reuse terms for restore-symbol's own code are not stated; the build links the MachObjC library from the class-dump submodule, which is GPL-2.0-or-later."
  ],
  "requirements_zh": [
    "项目没有发布版本或标签；所审阅的 2019-04-27 master 提交即最新提交，仓库也没有测试或 CI。README 只涉及 Objective-C 方法和 block，没有提到 Swift 符号。",
    "需在 macOS 上用 Xcode 构建：make 会初始化固定版本的 class-dump 子模块（0xced 的分支），并用 xcodebuild 构建面向 macOS 10.11 的工程。block 符号脚本 search_oc_block/ida_search_block.py 在 IDA 中运行，使用 Python 2 的 print 语句和旧版 idaapi.get_inf_structure 调用，并输出 block_symbol.json。",
    "输入是使用者有权分析的应用中的单架构 armv7 或 arm64 Mach-O 可执行文件；遇到 fat 文件时工具会拒绝处理并提示先用 lipo 拆分，处理结果写入新的输出文件而不改动输入文件。README 随后用使用者自己的开发者证书重新签名应用包，并在设备上用 lldb 调试。仓库只有源码和 README 截图，不含任何应用二进制。",
    "仓库没有许可证文件，GitHub 也未识别出许可证，因此 restore-symbol 自身代码的复用条款未说明；构建会链接 class-dump 子模块中的 MachObjC 库，该库采用 GPL-2.0-or-later。"
  ],
  "targets": [
    "app",
    "binary"
  ],
  "url": "https://github.com/tobefuturer/restore-symbol",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
