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.
Primary sources
- README.md GitHub · tobefuturer/restore-symbol · Revision 83ccb90
- source/restore-symbol.m GitHub · tobefuturer/restore-symbol · Revision 83ccb90
- makefile GitHub · tobefuturer/restore-symbol · Revision 83ccb90
- .gitmodules GitHub · tobefuturer/restore-symbol · Revision 83ccb90
- restore-symbol.xcodeproj/project.pbxproj GitHub · tobefuturer/restore-symbol · Revision 83ccb90
- search_oc_block/ida_search_block.py GitHub · tobefuturer/restore-symbol · Revision 83ccb90
- README.md GitHub · 0xced/class-dump · Revision a8877b6
More in Native binaries
- FakeNet-NG · Tool
- Joern · Tool
- Speakeasy · Tool
- LazyIDA · Tool
- Tiny Tracer · Tool
- Ponce · Tool