Tool
IDA iOS Helper
IDA Pro plugin that cleans up Hex-Rays pseudocode and adds navigation helpers for iOS user-mode binaries and the kernelcache, enabling its components according to the loaded file. For Objective-C and Swift code it hides reference-counting calls, selectors and static class arguments, collapses os_log sequences, turns property helpers into plain assignments or field reads, lists cross-references to a method's selector, and adds Swift type declarations and readable stack strings. For kernelcaches it types the results of safeMetaCast and typed operator new, names and types kalloc_type_view globals, fixes this arguments and lists the possible implementations of a virtual call, while shared helpers remove __break calls, rewrite ranged conditions, collapse block initializers and mark outlined functions.
- Targets
- App · Binary
- Category
- Native analysis tools
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- Requires IDA Pro 9.0+, and most listed features rewrite Hex-Rays pseudocode, so they assume IDA's decompiler is available. Installation uses IDA's own pip to install the ida-ios-helper package, which needs Python 3.10+ and pins the author's idahelper library at 1.0.18, and then copies ida-plugin.json and ida_plugin_stub.py into IDA's plugins folder.
- Latest release at review: 1.0.23, published 2026-06-25 with the wheel and source archive that are also on PyPI. The reviewed master commit is six commits ahead, adding an Objective-C fast-enumeration component and Swift type fixes that are not yet released, and its ida-plugin.json still declares version 1.0.19 and pins ida-ios-helper==1.0.19.
- The iOS binaries or kernelcaches come from the analyst. Virtual-call navigation needs vtable symbols in the database, and typing typed operator new results first needs the Locate all kalloc_type_view action. A Swift importer added in June 2026 and not described in the README runs the separate ipsw tool's swift-dump command on the input file to name and type Swift class methods.
- CI only checks Python 3.10 compatibility with vermin and runs ruff lint and format checks; there are no automated tests. The repository also holds headless idat probing scripts and a Claude Code skill used while developing the plugin, which establish no REA connection. GPL-3.0. Nothing was installed or run.
About this entry
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · yoavst/ida-ios-helper · Revision 65c7b03
- src/ioshelper/core.py GitHub · yoavst/ida-ios-helper · Revision 65c7b03
- pyproject.toml GitHub · yoavst/ida-ios-helper · Revision 65c7b03
- ida-plugin.json GitHub · yoavst/ida-ios-helper · Revision 65c7b03
- src/ioshelper/plugins/swift/swift_dump_import/importer.py GitHub · yoavst/ida-ios-helper · Revision 65c7b03
- .github/workflows/main.yml GitHub · yoavst/ida-ios-helper · Revision 65c7b03
- .claude/skills/probe-ida-function/SKILL.md GitHub · yoavst/ida-ios-helper · Revision 65c7b03
- LICENSE GitHub · yoavst/ida-ios-helper · Revision 65c7b03
- https://github.com/yoavst/ida-ios-helper/releases/tag/1.0.23
- https://pypi.org/project/ida-ios-helper/1.0.23/
More in Native binaries
- MAMBO · Tool
- Class Informer · Tool
- Kam1n0 · Tool
- iblessing · Tool
- SiMBA · Tool
- DownUnderCTF: masked-squares flag checker · Case study