incogbyte/iOS-reverse-engineering-claude-skill

GitHub: incogbyte/iOS-reverse-engineering-claude-skill

一款 Claude Code 技能插件,使 Claude 能够自动化提取、深度分析和逆向工程 iOS 应用程序及其二进制文件。

Stars: 37 | Forks: 12

# Claude Code 的 iOS 逆向工程技能 一个综合性的 [Claude Code 技能](https://docs.anthropic.com/en/docs/claude-code/skills),使 Claude 能够提取、分析和逆向工程 iOS 应用程序。它可以处理 IPA 文件、.app bundle、Mach-O 二进制文件、动态库和框架——生成关于 API、安全发现、嵌入密钥、SDK 清单和保护评估的结构化文档。 ## 功能 - **IPA/App 提取** — 解包 IPA 存档和 .app bundle,通过 `ipsw class-dump` 转储 Objective-C/Swift 类头文件,提取 Info.plist、entitlements、嵌入的框架和字符串常量 - **API 端点发现** — 跨 URLSession、Alamofire、Moya、AFNetworking、GraphQL 和 WebSocket 模式查找 HTTP 端点 - **调用流程追踪** — 追踪从 ViewController 到 ViewModel/Presenter 再到网络层的执行路径 - **安全审计** — 扫描 ATS 异常、证书绑定问题、弱加密、Keychain 滥用、越狱检测和调试工件 - **云凭证扫描** — 深度扫描来自 Firebase、AWS、GCP、Azure、Stripe、Twilio、SendGrid 等的泄漏 API 密钥和机密——并由 LLM 辅助进行风险分类 - **深度二进制逆向** — 使用 radare2、rizin 或 Ghidra headless 反编译函数、追踪交叉引用并分析加密/认证/网络代码 - **SDK 指纹识别** — 识别所有嵌入的第三方 SDK,检测版本,并与已知的 CVE 进行交叉引用 - **保护机制检测** — 检测代码混淆工具、反调试、dylib 注入防护、完整性校验、越狱检测以及 FairPlay DRM 加密 ## 要求 - **macOS** 和 Xcode Command Line Tools(提供 `otool`、`strings`、`plutil`、`codesign`) - **[ipsw](https://github.com/blacktop/ipsw)** — 必需。提供 class-dump 和 Mach-O 分析(`brew install blacktop/tap/ipsw`) - **[radare2](https://github.com/radareorg/radare2)** 或 **[rizin](https://github.com/rizinorg/rizin)** — 推荐用于深度二进制分析 - **[Ghidra](https://ghidra-sre.org/)** — 可选。通过内置的 Java 脚本启用高级 headless 反编译 该技能包含依赖项检查和自动安装脚本,可以自动处理设置。 ## 安装说明 ### 作为 Claude Code 技能(推荐) 将此代码库作为技能添加到你的 Claude Code 项目中: ``` claude mcp add-skill ios-reverse-engineering https://github.com//iOS-claude-skill.git ``` 或者在本地克隆并添加: ``` git clone https://github.com//iOS-claude-skill.git ``` 然后在你的 Claude Code 配置中引用该技能目录。 ### 验证依赖项 安装完成后,当你首次使用该技能时,Claude 会自动检查并安装依赖项。你也可以手动验证: ``` bash skills/ios-reverse-engineering/scripts/check-deps.sh ``` 如果缺少任何内容: ``` bash skills/ios-reverse-engineering/scripts/install-dep.sh ``` ## 用法 ### 通过 `/extract-ipa` 命令快速开始 该技能提供了一个用户可调用的斜杠命令,用于最常见的工作流程: ``` /extract-ipa /path/to/MyApp.ipa ``` 这将会: 1. 检查并安装所需的依赖项 2. 提取 IPA 并转储类头文件 3. 分析 App 结构(Info.plist、entitlements、框架、架构模式) 4. 呈现摘要并提供后续步骤 ### 支持的输入格式 | 格式 | 描述 | |---|---| | `.ipa` | iOS App Store 包(包含 `Payload/*.app` 的 ZIP 存档) | | `.app` | 应用程序 bundle 目录 | | Mach-O binary | 原始可执行二进制文件 | | `.dylib` | 动态库 | | `.framework` | 框架 bundle | ### 提取选项 ``` # Basic 提取 /extract-ipa MyApp.ipa # 自定义输出目录 /extract-ipa MyApp.ipa -o ./my-analysis # 跳过 class-dump(更快,仅 metadata) /extract-ipa MyApp.ipa --no-classdump # 从 fat binaries 中提取特定 architecture /extract-ipa MyApp.ipa --thin arm64 # Demangle Swift symbols /extract-ipa MyApp.ipa --swift-demangle ``` ### 分析阶段 提取后,你可以要求 Claude 执行以下任何分析。每个阶段都基于提取的输出构建。 #### 1. 结构分析 读取 Info.plist、entitlements、class-dump 输出和嵌入的框架。识别架构模式(MVC、MVVM、VIPER、Coordinator)和核心类。 #### 2. 调用流程追踪 追踪执行路径:ViewController -> ViewModel/Presenter -> Service/Repository -> API Client -> URLSession/Alamofire。映射依赖注入和服务创建模式。 #### 3. API 端点提取 在所有主要的网络库中搜索 HTTP 端点。支持定向搜索: - `--urlsession` — 仅限 URLSession 模式 - `--alamofire` — 仅限 Alamofire/AFNetworking - `--graphql` — GraphQL 操作 - `--websocket` — WebSocket 连接 - `--auth` — 认证模式 - `--urls` — 硬编码的 URL - `--swift-concurrency` — Combine/async-await 模式 - `--security` — 与安全相关的模式 为每个端点生成结构化文档,包括方法、路径、参数、标头、响应类型和调用链。 #### 4. 安全审计 扫描: - App Transport Security (ATS) 异常 - 禁用的证书绑定 - 硬编码的机密和 API 密钥 - 越狱检测机制 - 弱加密算法(MD5、ECB 模式、硬编码的 IV) - Keychain 滥用(`kSecAttrAccessibleAlways`) - 调试工件和预发布环境的 URL #### 5. 云凭证扫描 深度扫描来自 20 多家云提供商的凭证,提供定向扫描选项: - `--firebase` / `--aws` / `--gcp` / `--azure` — 云提供商 - `--payments` — Stripe、PayPal、RevenueCat - `--messaging` — Twilio、SendGrid、Slack、OneSignal - `--analytics` — Sentry、Mixpanel、Amplitude、Segment - `--jwt` — JWT token - `--severity high` — 仅限严重和高严重级别的项目 每项发现都由 LLM 进行分类:服务类型、客户端安全评估、影响范围、误报可能性、验证步骤和补救措施。 #### 6. 深度二进制逆向 使用 radare2/rizin 或 Ghidra headless 进行二进制级别的分析: - `--quick` — 仅限函数 + 字符串 + 导入 - `--secrets` — 专注于凭证处理代码 - `--network` — 专注于网络代码 - `--crypto` — 专注于加密实现 - `--auth` — 专注于认证逻辑 - `--decompile "sym.objc.AuthService.login"` — 反编译特定函数 - `--decompile-pattern "auth\|login\|token"` — 反编译匹配的函数 - `--xrefs "sym.imp.CCCrypt"` — 对函数的交叉引用 - `--callgraph "sym.objc.NetworkManager.request"` — 调用图可视化 - `--entropy` — 检测加壳/加密 - `--tool ghidra` — 强制使用 Ghidra headless 及 Java 分析脚本 包含的 Ghidra 脚本: - `DecompileAllFunctions.java` — 全面或针对安全的反编译 - `FindSecrets.java` — 在反编译代码中检测凭证和 API 密钥 - `ExportAPICalls.java` — 网络 API 符号追踪 - `ExportCryptoUsage.java` — 加密函数使用情况和弱模式检测 - `ExportStringXrefs.java` — 按类型分类的字符串交叉引用 #### 7. SDK 指纹识别 通过框架名称、链接库、类前缀、SDK 特定字符串和符号检测嵌入的 SDK。类别包括:网络、分析、广告、认证、支付、推送通知、地图、社交、数据库、云存储、UI/UX、安全、消息传递、崩溃报告、A/B 测试、Deep Linking 和 AR/ML。 选项: - `--check-cves` — 将检测到的 SDK 版本与已知的漏洞进行交叉引用 - `--verbose` — 显示匹配详情 - `--json` — 输出 JSON 以供程序化使用 #### 8. 保护机制检测 检测防篡改机制并输出保护评分(0-20): - `--obfuscation` — iXGuard、SwiftShield、OLLVM、Arxan、名称混淆率、字符串加密、控制流平坦化 - `--debugger` — ptrace、sysctl、时间检查、异常端口、SIGTRAP 处理程序 - `--injection` — `__RESTRICT` segment、DYLD 检查、库枚举、Substrate/Frida 检测 - `--integrity` — 运行时代码签名、二进制哈希校验、团队 ID 验证、收据验证 - `--jailbreak` — 文件路径检查、URL scheme、沙箱逃逸测试、环境变量 - `--encryption` — FairPlay DRM 检测 | 评分 | 等级 | |---|---| | 15-20 | 重度保护 | | 10-14 | 良好保护 | | 5-9 | 中度保护 | | 1-4 | 轻度保护 | | 0 | 无保护 | ### 生成报告 大多数分析脚本支持 `--report ` 以生成结构化的 Markdown 报告: ``` "Extract the app, scan for secrets, fingerprint SDKs, detect protections, and generate reports for everything" ``` ## 项目结构 ``` iOS-claude-skill/ ├── commands/ │ └── extract-ipa.md # /extract-ipa slash command definition ├── skills/ │ └── ios-reverse-engineering/ │ ├── SKILL.md # Main skill definition and workflow │ ├── scripts/ │ │ ├── check-deps.sh # Dependency checker │ │ ├── install-dep.sh # Auto-installer for dependencies │ │ ├── extract-ipa.sh # IPA/app extraction and class-dump │ │ ├── find-api-calls.sh # API endpoint discovery │ │ ├── deep-secret-scan.sh # Cloud credential scanner │ │ ├── reversing-analyze.sh # Binary reversing with r2/Ghidra │ │ ├── detect-sdks.sh # SDK fingerprinting │ │ ├── detect-protections.sh# Protection detection │ │ └── ghidra/ # Ghidra headless Java scripts │ │ ├── DecompileAllFunctions.java │ │ ├── FindSecrets.java │ │ ├── ExportAPICalls.java │ │ ├── ExportCryptoUsage.java │ │ └── ExportStringXrefs.java │ └── references/ │ ├── setup-guide.md # Tool installation guide │ ├── class-dump-usage.md # ipsw class-dump reference │ ├── api-extraction-patterns.md │ ├── call-flow-analysis.md │ ├── cloud-secrets-patterns.md │ ├── reversing-tools-guide.md │ ├── sdk-fingerprinting.md │ └── anti-tampering-patterns.md ├── LICENSE # Unlicense (public domain) └── README.md ``` ## 使用场景 - **安全研究** — 在负责任的漏洞披露之前,审计 iOS 应用程序的漏洞、泄漏凭证和弱加密算法 - **渗透测试** — 在授权的测试活动中,映射攻击面、识别 API 端点并评估保护机制 - **CTF 竞赛** — 快速提取和分析 iOS 挑战二进制文件 - **竞争分析** — 了解其他应用程序是如何构建的、它们使用了哪些 SDK 以及它们如何构建 API 结构 - **合规审计** — 验证应用程序是否符合安全标准(ATS、证书绑定、Keychain 使用、数据加密) - **应急响应** — 快速评估可疑的 IPA 是否存在恶意行为、数据泄露或嵌入的恶意软件 ## 许可证 本项目根据 [Unlicense](https://unlicense.org) 发布至公共领域。详情请参阅 [LICENSE](LICENSE)。
标签:Claude Code, iOS, JS文件枚举, 云资产清单, 代码分析, 凭证管理, 应用安全, 服务器监控, 逆向工程