anatoly505/ios-reverse-skills
GitHub: anatoly505/ios-reverse-skills
一个多LLM适配的iOS逆向工程工具包,通过14阶段自动化工作流辅助安全研究人员完成从IPA解包到漏洞审计的完整逆向分析流程。
Stars: 0 | Forks: 0
# ios-reverse-skills
本项目是对 [`incogbyte/iOS-reverse-engineering-claude-skill`](https://github.com/incogbyte/iOS-reverse-engineering-claude-skill) 的**分支、泛化及大幅度扩展**
(公共领域)。原项目以专供 Claude Code 使用的 Skill 形式发布,并包含一个 10 阶段的流程管线(pipeline);本仓库:
- 将工作流重构为模型无关的 [`skill/METHODOLOGY.md`](skill/METHODOLOGY.md),并**新增了 4 个阶段**
(解密、动态插桩、漏洞类审计、二进制补丁)。
- 保留了原有的每一个脚本和参考文档;基于经典著作 *iOS App Reverse Engineering*
([`iosre/iOSAppReverseEngineering`](https://github.com/iosre/iOSAppReverseEngineering))、
Mach-O / Ghidra / Frida 入门指南
([`GhidraEnjoyr/iOS-Reverse-Engineering`](https://github.com/GhidraEnjoyr/iOS-Reverse-Engineering))、
五模块课程
([`ivRodriguezCA/RE-iOS-Apps`](https://github.com/ivRodriguezCA/RE-iOS-Apps))
以及混淆 / Swizzling 参考资料
([`LaurieWired/iOS_Reverse_Engineering`](https://github.com/LaurieWired/iOS_Reverse_Engineering)),**新增了 5 个 bash 脚本、2 个 Ghidra 脚本和 12 份参考文档**。
- 为所有主流的 LLM 编码智能体添加了适配器。
完整的归属和许可信息请参见 [`NOTICE.md`](NOTICE.md)。
## 功能介绍
处理 IPA 归档、`.app` 包、Mach-O 二进制文件、动态库和框架——生成结构化的 API 文档、安全发现、嵌入的密钥、SDK 清单、保护机制评估**以及**可用于渗透测试报告的漏洞类审计。
- **初步分类(阶段 0)** — 五轮探测(符号、字符串、库、授权、Mach-O 信息)+ FairPlay 加密检测 + 解密驱动(`bagbak`、`frida-ios-dump`、`Clutch`)
- **IPA / app 解压(阶段 2)** — 解包,通过 `ipsw class-dump` 导出 Objective-C / Swift 类头文件,提取 `Info.plist`、授权、嵌入的框架、字符串常量
- **API 端点发现(阶段 5)** — URLSession、Alamofire、Moya、AFNetworking、GraphQL、WebSocket
- **调用流追踪(阶段 4)** — ViewController → ViewModel/Presenter → Service → API client → 网络层
- **安全审计(阶段 6)** — ATS 例外、证书锁定、弱加密、Keychain 误用、越狱检测、调试残留
- **云凭据扫描(阶段 7)** — Firebase、AWS、GCP、Azure、Stripe、Twilio、SendGrid + LLM 辅助分类、爆炸半径评估
- **深度二进制逆向(阶段 8)** — radare2 / rizin / Ghidra 无头模式,附带七个内置的 Java 分析脚本(包括 Swift 反混淆器和 Objective-C Swizzling 检测器)
- **SDK 指纹识别(阶段 9)** — 嵌入的第三方 SDK、版本检测、CVE 交叉参考
- **保护机制检测(阶段 10)** — 混淆、反调试、dylib 注入防护、完整性校验、越狱检测、FairPlay DRM(0-20 保护评分)
- **动态插桩(阶段 11)** — 用于越狱绕过、SSL Pinning 绕过、Keychain / URLSession / 剪贴板 / 加密挂钩(hooking)的即插即用 Frida 脚本包
- **漏洞类审计(阶段 12)** — URL Scheme 注入、WebView 误用、硬编码密钥、传输层安全破坏、不安全存储、敏感日志记录、深度链接滥用,以及书面的攻击链叙述
- **二进制补丁(阶段 13)** — AArch64 / armv7 补丁惯用法、重签名循环、FridaGadget 注入(仅限针对您拥有或被授权修改的软件)
完整的 14 阶段工作流位于 [`skill/METHODOLOGY.md`](skill/METHODOLOGY.md)。
## 仓库结构
```
ios-reverse-skills/
├── skill/ # The model-agnostic toolkit
│ ├── METHODOLOGY.md # 14-phase workflow (source of truth)
│ ├── scripts/
│ │ ├── check-deps.sh # Dep verification
│ │ ├── install-dep.sh # Auto-installer
│ │ ├── initial-probe.sh # ★ Five-pass triage (Phase 0)
│ │ ├── check-encryption.sh # ★ FairPlay detection (Phase 0)
│ │ ├── decrypt-helper.sh # ★ Decryption driver (Phase 0)
│ │ ├── extract-ipa.sh # Extract + class-dump (Phase 2)
│ │ ├── find-api-calls.sh # API endpoint discovery (Phase 5)
│ │ ├── deep-secret-scan.sh # Cloud credential scanner (Phase 7)
│ │ ├── reversing-analyze.sh # r2 / rizin / Ghidra driver (Phase 8)
│ │ ├── detect-sdks.sh # SDK fingerprinting + CVE (Phase 9)
│ │ ├── detect-protections.sh # Anti-tamper detection (Phase 10)
│ │ ├── frida-toolbox.sh # ★ Frida script generator (Phase 11)
│ │ ├── audit-vulnerabilities.sh # ★ Vuln-class audit (Phase 12)
│ │ └── ghidra/ # Ghidra headless Java scripts
│ │ ├── DecompileAllFunctions.java
│ │ ├── FindSecrets.java
│ │ ├── ExportAPICalls.java
│ │ ├── ExportCryptoUsage.java
│ │ ├── ExportStringXrefs.java
│ │ ├── SwiftDemangler.java # ★ Swift name beautifier
│ │ └── DetectSwizzling.java # ★ ObjC swizzling locator
│ └── references/ # Per-phase reference guides
│ ├── setup-guide.md
│ ├── initial-probe.md # ★ Five-pass triage walk-through
│ ├── macho-internals.md # ★ Mach-O headers / load cmds / sections
│ ├── arm-assembly-primer.md # ★ AArch64 + armv7 idioms
│ ├── ios-app-lifecycle.md # ★ Entrypoints to start reversing from
│ ├── swift-reversing.md # ★ Mangling, dispatch, metadata
│ ├── ipc-mechanisms.md # ★ Mach IPC / MIG / XPC fingerprints
│ ├── dyld-shared-cache.md # ★ DSC extraction
│ ├── decryption-workflow.md # ★ FairPlay & decrypters
│ ├── dynamic-instrumentation.md # ★ Frida / Cycript / lldb primer
│ ├── binary-patching.md # ★ Patch idioms + re-signing
│ ├── common-vulnerabilities.md # ★ Vuln class catalogue + template
│ ├── obfuscation-patterns.md # ★ Strip / swizzle / CFF / strings
│ ├── class-dump-usage.md
│ ├── api-extraction-patterns.md
│ ├── call-flow-analysis.md
│ ├── cloud-secrets-patterns.md
│ ├── reversing-tools-guide.md
│ ├── sdk-fingerprinting.md
│ └── anti-tampering-patterns.md
│ # ★ = added by anatoly505/ios-reverse-skills (see NOTICE.md)
├── agents/ # Per-LLM adapter configs
│ ├── claude-code/ # SKILL.md + /extract-ipa command
│ ├── cursor/ # .cursor/rules/*.mdc + commands
│ ├── qwen-coder/ # QWEN.md + AGENTS.md
│ ├── minimax/ # System prompt
│ ├── openai-codex/ # AGENTS.md
│ ├── aider/ # CONVENTIONS.md + .aider.conf.yml
│ ├── cline/ # .clinerules
│ └── generic/ # Universal system prompt
├── install.sh # One-shot installer
├── LICENSE # Unlicense (public domain)
├── NOTICE.md # Upstream attribution
└── README.md # This file
```
## 快速开始
### 1. 克隆
```
git clone https://github.com/anatoly505/ios-reverse-skills.git
cd ios-reverse-skills
```
### 2. 为您的智能体安装
| 智能体 | 一行命令 |
| ----------------- | -------------------------------------------------------------------------- |
| Claude Opus / Code| `bash install.sh --for claude-code --target /path/to/project` |
| Cursor (任何模型)| `bash install.sh --for cursor --target /path/to/workspace` |
| Qwen Coder | `bash install.sh --for qwen-coder --target /path/to/project` |
| MiniMax | `bash install.sh --for minimax --target /path/to/workspace` |
| OpenAI Codex / GPT-5 | `bash install.sh --for openai-codex --target /path/to/project` |
| Aider | `bash install.sh --for aider --target /path/to/project` |
| Cline | `bash install.sh --for cline --target /path/to/project` |
| 任何 LLM (手动) | `bash install.sh --for generic --target /path/to/workspace` |
| 全部安装 | `bash install.sh --for all --target /path/to/playground` |
安装程序会将正确的配置文件放入您的项目中(例如 `.cursor/rules/`、`.claude/skills/`、`QWEN.md`、`AGENTS.md`、`.clinerules` 等),并将实际的脚本复制到 `tools/ios-re-skill/` 目录下(对于 Claude Code 则是 `.claude/skills/ios-reverse-engineering/` 目录)。
### 3. 验证依赖项
```
export IOS_RE_SKILL_ROOT="/path/to/project/tools/ios-re-skill" # or .claude/skills/...
bash "$IOS_RE_SKILL_ROOT/scripts/check-deps.sh"
```
必选:`ipsw`(`brew install blacktop/tap/ipsw`)、`otool`、`strings`、`unzip`。推荐:`radare2`/`rizin`、`Ghidra`(需设置 `GHIDRA_INSTALL_DIR`)、`plutil`、`codesign`。macOS 可通过 Xcode CLI 工具提供其中大部分工具。Linux 仅支持静态分析。
### 4. 通过您的智能体驱动
示例:
```
Claude Code: /extract-ipa /work/MyApp.ipa
Cursor: /extract-ipa /work/MyApp.ipa
Qwen Coder: "Extract /work/MyApp.ipa, run all 10 phases, write a report."
MiniMax: Same — system prompt is preloaded with the workflow.
Codex CLI: Same — AGENTS.md takes care of the contract.
Aider: /run bash $IOS_RE_SKILL_ROOT/scripts/extract-ipa.sh /work/MyApp.ipa
Cline: "Extract /work/MyApp.ipa and produce a security report."
```
每个智能体随后都会运行相同的 14 个阶段,调用相同的 bash 脚本,并生成相同的 `*-report.md` 交付物。
## 支持的输入格式
| 格式 | 描述 |
| -------------- | ------------------------------------------------------------ |
| `.ipa` | iOS App Store 包(包含 `Payload/*.app` 的 ZIP 归档文件) |
| `.app` | 应用程序包目录 |
| Mach-O binary | 原始可执行文件 |
| `.dylib` | 动态库 |
| `.framework` | 框架包 |
## 14 个阶段
| # | 阶段 | 驱动脚本 |
|---|------------------------------------------------|--------------------------------|
| 0 | 分类 + (如需)解密 | `initial-probe.sh`, `check-encryption.sh`, `decrypt-helper.sh` |
| 1 | 验证并安装依赖项 | `check-deps.sh`, `install-dep.sh` |
| 2 | 解压与 class-dump | `extract-ipa.sh` |
| 3 | 分析结构 (Info.plist, entitlements) | (手动) |
| 4 | 追踪调用流 (UI → ViewModel → 网络层) | (手动) |
| 5 | 提取并记录 API | `find-api-calls.sh` |
| 6 | 安全审计 (ATS, pinning, crypto) | `find-api-calls.sh --security` |
| 7 | 深度密钥与凭据扫描 | `deep-secret-scan.sh` |
| 8 | 深度二进制逆向 | `reversing-analyze.sh` |
| 9 | SDK 与框架指纹识别 | `detect-sdks.sh` |
|10 | 保护与防篡改检测 (0-20) | `detect-protections.sh` |
|11 | 动态插桩 (Frida) | `frida-toolbox.sh` |
|12 | 漏洞类审计 | `audit-vulnerabilities.sh` |
|13 | 二进制补丁(仅在获得授权时) | `references/binary-patching.md` |
请阅读 [`skill/METHODOLOGY.md`](skill/METHODOLOGY.md) 中的完整规范。
## 使用场景
- **安全研究** — iOS 应用公开披露前的审计
- **渗透测试** — 授权参与的攻击面映射
- **CTF** — iOS 挑战二进制文件的快速分类
- **竞品分析** — SDK / API / 架构情报收集
- **合规性检查** — 验证 ATS、证书锁定、Keychain 使用情况、数据加密
- **事件响应** — 对可疑 IPA 的快速评估
## 贡献
欢迎提交 PR——可为新增的智能体提供适配器、新的 SDK 指纹、改进的密钥匹配模式以及更多的 Ghidra 脚本。请保持脚本与模型无关;将特定于智能体的粘合代码放在 `agents//` 目录下。
## 许可证
公共领域 — [Unlicense](LICENSE)。有关上游归属信息,请参见 [`NOTICE.md`](NOTICE.md)。
标签:API发现, Claude, Codex, CVE检测, DLL 劫持, Docker支持, FairPlay解密, Frida, Ghidra, GPT, iOS安全, iOS逆向工程, IPA解包, LLM适配器, Mach-O, Qwen, 二进制补丁, 反取证, 大语言模型, 安全评估, 应用安全, 服务器监控, 漏洞管理, 目录枚举, 移动安全, 符号分析, 逆向分析