abhiabby3008/flutter-reverse-engineering-skill
GitHub: abhiabby3008/flutter-reverse-engineering-skill
一款 Claude Code 插件,用于对 Flutter 应用进行全方位逆向分析,支持源码、APK 和 ADB 真机三种输入方式,可自动生成架构蓝图和交互式文档报告。
Stars: 0 | Forks: 0
# Claude Code 的 Flutter 逆向工程技能
**最全面的 Claude Code Flutter 应用分析技能。** 从源代码、APK 文件或通过 ADB 直接从连接的手机对任何 Flutter 应用进行逆向工程。生成带有交互式图表的完整架构蓝图。
**v1.1.0** | [配套:安全加固技能](https://github.com/abhiabby3008/flutter-security-hardening-skill)
## 快速开始
```
# 步骤 1:添加 marketplace(一次性)
claude plugin marketplace add abhiabby3008/flutter-reverse-engineering-skill
# 步骤 2:安装 plugin
claude plugin install flutter-reverse-engineering
# 更新到最新版本
claude plugin update flutter-reverse-engineering
```
该技能每次运行时都会自动检查更新——如果有新版本可用,您将看到通知。
## 这是什么?
您只需将其指向任何 Flutter 应用——源代码、APK 文件或通过 USB 连接的手机——它就会生成一份完整的技术蓝图。架构模式、每个分类的依赖项、状态管理流程、API 契约、导航图、设计模式、构建配置等。所有内容都包含在带有可视化 Mermaid 图表的结构化报告中。
将其视为**在几分钟而不是几天内上手任何 Flutter 代码库。**
## 三种分析方式
### 模式 A:源代码
您的机器上有 Flutter 项目。只需打开项目目录并说:
```
> analyze this Flutter project
> what's the architecture of this codebase?
> reverse engineer this app and generate documentation
```
该技能读取 `pubspec.yaml`、`lib/`、构建文件和关键源文件以生成完整的分析。
### 模式 B:APK / XAPK 文件
您有一个 `.apk` 或 `.xapk` 文件——来自下载、构建文件夹或磁盘上的任何位置:
```
> reverse engineer ~/Downloads/competitor-app.apk
> analyze this APK: build/app/outputs/flutter-apk/app-release.apk
> what can I learn from this XAPK file?
```
该技能提取 APK,验证它是否为 Flutter 应用,然后从 `libapp.so` 中挖掘字符串——查找 API 端点、类名、路由名称、存储键、错误消息和潜在的硬编码密钥。
### 模式 C:连接的设备 (ADB)
您的手机通过 USB 或无线 ADB 连接。该技能直接提取 APK:
```
> my phone is connected, pull the Feelins app and analyze it
> pull com.example.app from my device
> list all apps on my phone
```
**没有安装 ADB?** 没问题——该技能会请求许可,然后从 Google 自动安装 Android Platform Tools(约 15MB)。支持 Windows、macOS 和 Linux。
## 21 个分析阶段
### APK 与设备阶段(模式 B 和 C)
| 阶段 | 功能 |
|-------|-------------|
| **0** | **ADB 设置与 APK 提取** —— 自动安装 ADB,连接设备(USB/无线),查找并提取目标应用 |
| **1** | **APK 解压** —— unzip,验证 Flutter 标记(`libflutter.so`、`libapp.so`、`flutter_assets/`),处理 split APK |
| **2** | **APK 报告** —— 从编译后的 Dart 中提取字符串,发现 API 端点、包、路由、错误消息,标记硬编码密钥 |
### 源代码阶段(模式 A)
| 阶段 | 功能 |
|-------|-------------|
| **3** | **项目标识** —— 名称、版本、SDK 约束、Flutter 渠道、monorepo 检测 |
| **4** | **依赖项分析** —— 将每个包分类为 16 个类别(状态管理、网络、存储、Firebase、支付、媒体等)。识别 100 多个常见包 |
| **5** | **架构检测** —— 识别 Provider、BLoC、Riverpod、GetX、Clean Architecture、MVVM、MVC 或 Feature-First 模式。读取实际代码进行确认,而不仅仅是文件夹名称 |
| **6** | **文件夹结构** —— 完整的带注释的 `lib/` 目录树,包含文件计数和用途 |
| **7** | **状态管理深度剖析** —— provider/bloc/controller 清单,状态的提供位置,UI 如何使用它,持久化,横切状态 |
| **8** | **领域知识** —— 数据模型,API 契约(端点、认证、错误处理),业务实体和关系,枚举和常量 |
| **9** | **导航与路由** —— GoRouter、AutoRoute、GetX、Navigator 1.0/2.0 检测。路由图,守卫,深度链接,Tab 结构 |
| **10** | **服务层** —— 带有单例/实例模式的服务清单,依赖项,关键方法 |
| **11** | **设计模式** —— 单例、存储库、工厂、观察者、DI、mixins、extensions 及其文件位置 |
| **12** | **构建与平台配置** —— 平台,最低 SDK,权限,CI/CD,flavors,OTA (Shorebird),代码签名 |
| **13** | **代码质量** —— lint 规则,测试覆盖率,null safety,类型化与非类型化模型,错误处理一致性 |
| **14** | **功能与屏幕图** —— 带有导航入口点的面向用户的功能树 |
### 高级阶段(所有模式)
| 阶段 | 功能 |
|-------|-------------|
| **15** | **设备数据提取** —— 从连接的设备中提取 SharedPreferences XML、SQLite 数据库、Hive boxes、Firebase 缓存、应用日志(首先会请求许可) |
| **16** | **自动生成 CLAUDE.md** —— 创建一个随时可用的 CLAUDE.md,以便 Claude Code 在未来的会话中拥有完整的上下文 |
| **17** | **Mermaid 架构图** —— 生成依赖关系图、屏幕流程图、数据流图和实体关系图 |
| **18** | **多应用对比** —— 并排分析 2-5 个应用。对比矩阵:包、权限、API 端点、大小、状态管理、Firebase、SSL pinning、混淆 |
| **19** | **APK 体积细分** —— 组件级大小分析(原生库、资源、Dart 代码)及百分比 |
| **20** | **文档导出** —— 生成 `ARCHITECTURE_BLUEPRINT.md`(带有 Mermaid 图表的完整报告)和 `architecture_report.html`(交互式仪表板,支持暗色/亮色模式、侧边栏导航、可搜索表格、实时图表) |
## 输出文件
| 文件 | 格式 | 内容 |
|------|--------|--------------|
| `ARCHITECTURE_BLUEPRINT.md` | Markdown | 15 节报告 + 3 个附录,内联 Mermaid 图表,适用于 GitHub 和任何 Markdown 查看器 |
| `architecture_report.html` | HTML | 交互式仪表板:暗色/亮色模式,侧边栏导航,可搜索的依赖表,可折叠部分,复制到剪贴板,Mermaid 图表,打印友好,响应式 |
| `CLAUDE.md` | Markdown | 为 Claude Code 自动生成的项目上下文文件 |
## 内置脚本
| 脚本 | 功能 |
|--------|-------------|
| `install-adb.sh` | 在 Windows/Mac/Linux 上自动安装 ADB。首先尝试包管理器,回退到 Google 直接下载。不需要 sudo。 |
| `pull-from-device.sh` | 从连接的设备提取 APK。处理 split APK (Android 10+),多设备,无线 ADB,按名称搜索包。 |
| `analyze-flutter-apk.sh` | 提取 Flutter APK,对 `libapp.so` 运行字符串分析,将发现分类为 API URL、类名、路由、存储键、错误消息、潜在密钥。 |
| `check-update.sh` | 检查 GitHub 是否有新版本(3 秒超时,非阻塞)。如果版本落后则显示更新横幅。 |
## 参考文件
| 文件 | 行数 | 内容 |
|------|-------|---------|
| `architecture-patterns.md` | 351 | 8 种 Flutter 架构模式的检测指南:Provider、BLoC、Riverpod、GetX、Clean Architecture、MVVM、Feature-First、Flat。每种模式的代码签名、文件夹信号和真实世界特征。 |
| `package-catalog.md` | 161 | 按类别组织的 100 多个 Flutter 包。每个包传达的关于项目的信息(例如,“razorpay_flutter = 印度市场应用”)。 |
## 使用示例
```
# Source code 分析
> analyze this Flutter project
> what architecture does this app use?
> reverse engineer this codebase and generate docs
# APK 分析
> reverse engineer C:/Users/me/Downloads/competitor.apk
> what packages does this APK use?
> extract API endpoints from this APK
# ADB 设备
> my phone is connected via USB, pull com.example.app
> list installed apps on my phone
> pull the app and analyze it
# 竞品分析
> compare these APKs: feelins.apk, dostt.apk, vokly.apk
> which app has more features?
# 文档
> analyze this project and generate a CLAUDE.md
> create an architecture blueprint with diagrams
> generate the HTML report
```
## 配套技能:安全加固
此技能向您展示 Flutter 应用是如何被逆向工程的。配套技能 **[flutter-security-hardening](https://github.com/abhiabby3008/flutter-security-hardening-skill)** 可以防止这种情况:
```
What RE skill finds What Security skill fixes
──────────────────── ────────────────────────
strings libapp.so → API keys → Move keys to server / NDK
adb cat shared_prefs → tokens → flutter_secure_storage
No SSL pinning → intercept API → Certificate pinning with Dio
No obfuscation → class names → --obfuscate --split-debug-info
No root check → full access → freeRASP runtime protection
```
安装两者:
```
claude plugin marketplace add abhiabby3008/flutter-reverse-engineering-skill
claude plugin install flutter-reverse-engineering
claude plugin marketplace add abhiabby3008/flutter-security-hardening-skill
claude plugin install flutter-security-hardening
```
## 系统要求
- **Claude Code** v2.1+
- **对于 APK 分析:** `unzip`、`strings`(大多数系统上的标准配置)
- **对于 ADB:** 由技能自动安装,或从 [Android Platform Tools](https://developer.android.com/studio/releases/platform-tools) 手动安装
- **对于 HTML 报告:** 任何现代浏览器(Mermaid.js 通过 CDN 加载)
## 贡献
发现错误?想要添加对新架构模式或包的支持?欢迎提交 PR。
## 许可证
MIT 许可证 - 详见 [LICENSE](LICENSE)
标签:ADB, API端点提取, APK分析, Claude Code, Cutter, Dart, Flutter, IP 地址批量处理, Mermaid图表, WebSocket, XAPK, 云安全监控, 云资产清单, 代码分析, 依赖分析, 凭证管理, 插件, 架构提取, 源码审计, 目录枚举, 移动安全, 网络信息收集, 自动化文档, 跨平台开发, 软件开发, 逆向工程, 静态分析