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文件枚举, 云资产清单, 代码分析, 凭证管理, 应用安全, 服务器监控, 逆向工程