工具
IDA iOS Helper iOS 逆向辅助插件
一款 IDA Pro 插件,用于清理 Hex-Rays 伪代码,并为 iOS 用户态二进制和 kernelcache 提供导航辅助,会根据所加载的文件启用相应组件。对 Objective-C 和 Swift 代码,它可隐藏引用计数调用、选择器和静态类参数,折叠 os_log 调用序列,把属性辅助函数还原为普通赋值或字段读取,列出方法选择器的交叉引用,并加入 Swift 类型声明和可读的栈上字符串。对 kernelcache,它可为 safeMetaCast 和带类型的 operator new 的返回值设置类型,为 kalloc_type_view 全局变量命名并设置类型,修正 this 参数,并列出虚函数调用的所有可能实现;通用辅助功能则会移除 __break 调用、改写范围条件、折叠 block 初始化代码并标记外提(outlined)函数。
- 目标
- 应用 · 二进制
- 类别
- 原生分析工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 需要 IDA Pro 9.0+;所列功能大多改写 Hex-Rays 伪代码,因此默认可使用 IDA 的反编译器。安装时先用 IDA 自带的 pip 安装 ida-ios-helper 软件包(需要 Python 3.10+,并将作者的 idahelper 库固定为 1.0.18 版),再把 ida-plugin.json 和 ida_plugin_stub.py 复制到 IDA 的插件目录。
- 审阅时最新版本为 1.0.23,发布于 2026-06-25,附带与 PyPI 上相同的 wheel 和源码包。所审阅的 master 提交比该版本多六个提交,新增了 Objective-C 快速枚举组件和 Swift 类型修正,这些改动尚未发布;该提交中的 ida-plugin.json 仍声明版本 1.0.19,并固定依赖 ida-ios-helper==1.0.19。
- 待分析的 iOS 二进制或 kernelcache 由分析者自行提供。虚函数调用导航要求数据库中存在 vtable 符号;为带类型的 operator new 返回值设置类型前,需先执行 Locate all kalloc_type_view 操作。2026 年 6 月加入、README 未作说明的 Swift 导入器会对输入文件运行独立工具 ipsw 的 swift-dump 命令,为 Swift 类方法命名并设置类型。
- CI 只用 vermin 检查 Python 3.10 兼容性,并运行 ruff 的静态检查和格式检查,没有自动化测试。仓库中还有开发插件时使用的无界面 idat 探测脚本和一个 Claude Code 技能,它们并不能确立与 REA 的关联。采用 GPL-3.0 许可。本次未安装或运行任何内容。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · yoavst/ida-ios-helper · 修订 65c7b03
- src/ioshelper/core.py GitHub · yoavst/ida-ios-helper · 修订 65c7b03
- pyproject.toml GitHub · yoavst/ida-ios-helper · 修订 65c7b03
- ida-plugin.json GitHub · yoavst/ida-ios-helper · 修订 65c7b03
- src/ioshelper/plugins/swift/swift_dump_import/importer.py GitHub · yoavst/ida-ios-helper · 修订 65c7b03
- .github/workflows/main.yml GitHub · yoavst/ida-ios-helper · 修订 65c7b03
- .claude/skills/probe-ida-function/SKILL.md GitHub · yoavst/ida-ios-helper · 修订 65c7b03
- LICENSE GitHub · yoavst/ida-ios-helper · 修订 65c7b03
- https://github.com/yoavst/ida-ios-helper/releases/tag/1.0.23
- https://pypi.org/project/ida-ios-helper/1.0.23/