Dsctool
Hopper plugin to analyze ObjC runtime structures in the dyld_shared_cache
Install / Use
/learn @ronwai/DsctoolREADME
dsctool
Hopper plugin to analyze ObjC runtime structures in the dyld_shared_cache: reconstruct class and protocol structures with the name & type information of ivars, properties, methods, and superclasses.
This is accomplished through:
- de-authenticating pointers & importing data from the dsc with private Hopper methods (exposed via extended headers, hence the need to bundle the SDK with the tool)
- statically linking Steve Nygard's awesome class-dump library (hence the submodule)
- a bit of parsing of the new Objective-C runtime structures
Class reconstruction:

Protocol reconstruction:

How to build
- Define or change
PLATFORM_IOSMACto 6 inclass-dump/Source/CDLCBuildVersion.m(known issue: https://github.com/nygard/class-dump/issues/93) - Configure your development signing certificate under Signing & Capabilities (otherwise the plugin won't load)
- Build the plugin and copy
DSCTool.hopperTool/to~/Library/Application Support/Hopper/PlugIns/v4/Tools/
Usage
Note that the plugin is intended to be used on individual frameworks in the Big Sur dyld_shared_cache. I use it personally on M1 and have not tested it on an Intel Mac or iOS though I don't anticipate any issues.
The plugin exposes four menus under Tool Plugins:
- Analyze address at cursor as __objc_class: this will dereference the address at the current cursor (making sure to dePAC & import, if necessary) then parse the destination as a class, along with all of its relevant fields. Taking care to dePAC, if the pointer is authenticated, and import if the data is unmapped.
- Analyze address at cursor as __objc_protocol
- Analyze all classes in __objc_classlist
- Analyze all protocols in __objc_protolist
Known Issues
- Sometimes you have to analyze a class twice for it work... 🤷♂️
Related Skills
node-connect
338.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
338.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.4kCommit, push, and open a PR
