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, 二进制补丁, 反取证, 大语言模型, 安全评估, 应用安全, 服务器监控, 漏洞管理, 目录枚举, 移动安全, 符号分析, 逆向分析