Tool

restore-symbol

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.

Requirements & limits

  • 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; compatibility with current Xcode, macOS and iOS binaries was not checked.
  • 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. The reviewed sources state no REA use, and no binary was processed for this record.

About this entry

Type
Tool
Category
Native analysis tools
Relationship
Foundation tool
Targets
App · Binary

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · tobefuturer/restore-symbol · Revision 83ccb90
  2. source/restore-symbol.m GitHub · tobefuturer/restore-symbol · Revision 83ccb90
  3. makefile GitHub · tobefuturer/restore-symbol · Revision 83ccb90
  4. .gitmodules GitHub · tobefuturer/restore-symbol · Revision 83ccb90
  5. restore-symbol.xcodeproj/project.pbxproj GitHub · tobefuturer/restore-symbol · Revision 83ccb90
  6. search_oc_block/ida_search_block.py GitHub · tobefuturer/restore-symbol · Revision 83ccb90
  7. README.md GitHub · 0xced/class-dump · Revision a8877b6

More in Native binaries

All 90 entries in Native binaries