PART 01
PART 01 /// 这个项目是什么?
最近在GitHub上发现一个有趣的开源项目:android-reverse-engineering-skill,作者是Simone.Avogadro。
简单说,它是一个给Claude Code用的"技能包"——安装之后,你只需要对Claude说"帮我反编译这个APK",它就能自动完成依赖检查、反编译、结构分析、API提取等全套逆向工程流程。
项目地址:github.com/SimoneAvogadro/android-reverse-engineering-skill
开源协议:Apache 2.0
PART 02
PART 02 /// 它能做什么?
这个技能的核心能力可以概括为五个阶段:
第一阶段:依赖检查与安装
自动检测你的环境里有没有Java JDK 17+、jadx、Fernflower等工具。缺什么装什么,支持macOS、Linux、Windows,还能自动识别包管理器。
第二阶段:反编译
支持三种引擎:
- jadx:默认引擎,速度快,能处理资源文件
- Fernflower/Vineflower:JetBrains出品,对复杂Java代码(lambda、泛型、Stream API)输出质量更高
- both模式:两个引擎同时跑,生成对比报告
支持的文件格式包括APK、XAPK(多APK捆绑包)、JAR和AAR。
第三阶段:结构分析
自动读取AndroidManifest.xml,识别所有Activity、Service、BroadcastReceiver和ContentProvider。分析包结构,区分应用代码和第三方库,还能识别架构模式(MVP、MVVM、Clean Architecture)。
第四阶段:调用链追踪
从Activity的onCreate()出发,一路追踪到ViewModel、Repository,最终找到HTTP请求的发起点。即使代码被ProGuard混淆了,它也能通过字符串常量和库API调用作为锚点来追踪。
第五阶段:API提取与文档化
这是最实用的部分。自动扫描所有Retrofit接口、OkHttp调用、硬编码URL、认证头信息,然后生成结构化的API文档,包括:
- HTTP方法和路径
- Base URL
- 请求参数(路径参数、查询参数、请求体)
- 响应类型
- 完整的调用链
PART 03
PART 03 /// 技术实现亮点
双引擎对比机制
这个设计很聪明。jadx速度快但对复杂代码可能有warning,Fernflower输出质量高但需要额外步骤(先用dex2jar转成JAR)。当两个引擎都跑一遍后,你可以对比它们的输出,对有warning的类优先看Fernflower的结果。
混淆代码的应对策略
作者总结了一套很实用的策略:什么会被混淆(类名、方法名、字段名),什么不会(字符串常量、Android框架类、Retrofit注解、AndroidManifest条目)。基于这个认知,即使面对重度混淆的APK,也能找到分析入口。
模块化脚本设计
四个核心脚本各司其职:
check-deps.sh:检查依赖install-dep.sh:安装依赖decompile.sh:反编译find-api-calls.sh:API搜索
每个脚本都可以独立使用,不需要Claude Code环境。
PART 04
PART 04 /// 社区怎么说?
这个项目在XDA开发者论坛和Reddit的r/androiddev板块都有讨论。
XDA用户Simone.Avogadro分享时提到,他做这个的初衷是为了解决一个实际问题:他需要反编译一个没有官方自动化接口的智能家居应用,想通过逆向工程找到它的API然后实现自动化控制。
社区用户dever1211评价说,这个工具对有IDA Pro和反编译经验的人来说非常实用,特别是在处理DEX和so文件时。
Reddit上也有开发者讨论,认为这种"AI+逆向工程"的组合很有前景,尤其是对于快速理解一个陌生应用的内部机制。
PART 05
PART 05 /// 怎么用?
安装(两行命令):
/plugin marketplace add SimoneAvogadro/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill
使用方式:
方式一:用斜杠命令
/decompile path/to/app.apk
方式二:自然语言
"帮我反编译这个APK"
"从这个应用里提取所有API接口"
"追踪LoginActivity的调用链"
方式三:脚本直接调用
# 反编译
bash decompile.sh app.apk
# 找API调用
bash find-api-calls.sh output/sources/
# 只找Retrofit
bash find-api-calls.sh output/sources/ --retrofit
PART 06
PART 06 /// 适合谁用?
- 安全研究员:快速分析应用的网络通信和数据流向
- 渗透测试工程师:在授权测试中发现隐藏的API端点
- 开发者:学习优秀应用的架构设计和API设计
- CTF参赛者:在CTF竞赛中快速分析Android挑战题
- 自动化爱好者:像作者一样,通过逆向找到没有官方API的应用的控制方式
需要说明的是,这个工具明确声明仅用于合法目的,包括安全研究、授权渗透测试、互操作性分析和教育用途。使用者需要自行确保符合当地法律法规。
///
这就是这个项目的核心内容。整体来看,它把原本需要手动执行的多个工具链整合成了一个AI驱动的自动化流程,降低了Android逆向工程的门槛。对于需要快速分析APK的场景,确实是个不错的工具。
THANKS FOR READING
⚡ 爱马仕 · Hermes Agent 技术分享
夜雨聆风