在移动安全研究与渗透测试场景中,Android 应用的逆向工程一直是关键技能。传统方式需要手工使用 jadx、apktool 等工具逐层分析,流程繁琐且容易遗漏细节。近期开源的 Claude Code 技能「android-reverse-engineering-skill」将反编译、API 提取、调用链追踪整合为自动化流水线,让安全研究人员能够通过自然语言指令完成从 APK 到完整分析报告的全过程。
核心能力与技术架构
该技能的核心设计理念是将逆向工程从手动操作转变为声明式工作流。它支持对 APK、XAPK、JAR、AAR 四种格式的 Android 资源包进行一键反编译,默认使用 jadx 作为主要反编译器,同时兼容 Vineflower(原 Fernflower 的社区分支)作为备选引擎。两者结合使用时,技能会自动对比两份输出,选取可读性更优的结果,这在分析经过高度混淆的商用应用时尤为实用。
在反编译之外,技能更强大的能力在于 HTTP API 的自动化提取。它能够从反编译后的 Java 源码中识别 Retrofit 接口定义、OkHttp 调用模式、硬编码的 URL 字符串以及认证头和令牌信息。这意味着安全研究员无需逐文件搜索「BASE_URL」「Authorization」等关键词,技能会自动生成一份结构化的 API 文档,包含每个端点的路径、请求方法、参数类型以及可能的认证要求。
调用链追踪是另一个关键功能。技能支持从指定的 Activity 或 Fragment 出发,沿 ViewModel → Repository → HTTP Client 的调用路径向下追溯,还原完整的业务流程。例如,当你想了解「登录按钮点击后数据如何发送到后端」时,只需告诉技能「Follow the call flow from LoginActivity」,它就会输出从 UI 层到网络层的完整路径,包括每一层涉及的类名和方法签名。
依赖安装与工作流配置
使用该技能前需要确保本地环境满足以下依赖:Java JDK 17 或更高版本、jadx CLI 工具。可选的推荐工具包括 Vineflower(用于复杂代码的反编译)以及 dex2jar(用于将 DEX 文件转换为 JAR 以便 Fernflower 处理)。技能自带检查脚本,运行 check-deps.sh 可自动验证所有依赖是否就位,缺失时会提示具体的安装步骤。
安装过程极为简洁。在 Claude Code 环境中执行两条命令即可完成技能注册:
/plugin marketplace add SimoneAvogadro/android-reverse-engineering-skill
/plugin install android-reverse-engineering@android-reverse-engineering-skill
此后该技能会在所有后续会话中持续生效,无需重复配置。
交互方式与实战用法
技能的交互设计支持两种典型场景。其一是 slash 命令快捷入口:当你在对话中输入 /decompile path/to/app.apk 时,技能会自动执行完整的五阶段工作流 —— 依赖检查、反编译、初步结构分析、API 端点提取、调用链生成。处理 XAPK(App Bundle 格式)时,技能会先自动解压其中的每个 APK 再逐一反编译,全程无需人工干预。
其二是自然语言触发。技能会识别如下表达并激活对应功能:「Decompile this APK」「Extract API endpoints from this app」「Follow the call flow from LoginActivity」。这种设计使得逆向工程任务可以像日常聊天一样描述,特别适合在分析过程中随时追加新的查询。例如,当你已经反编译了一个应用并发现某个可疑的网络请求时,可以直接说「Find all OkHttp calls in this package」,技能会遍历所有源码并列出完整的 HTTP 请求清单。
对于高级用户,技能提供的独立脚本同样可直接在终端调用。find-api-calls.sh 支持多种过滤模式:--retrofit 仅输出 Retrofit 接口定义,--urls 单独提取硬编码 URL,结合管道工具可以快速构建自定义的分析报告。
混淆代码处理策略
面对经过 ProGuard 或 R8 混淆的商业应用,技能的参考文档中内置了专门的应对策略。首先,通过 --deobf 参数启用反混淆模式,让 Vineflower 尝试基于字节码分析恢复更可读的变量名。其次,技能会利用混淆后仍保留的方法签名特征(如参数数量、返回值类型)进行模式匹配,帮助识别常见的网络库调用。即使类名被替换为「a」「b」「c」这类无意义字符,技能仍能通过调用关系的结构性特征还原出完整的 API 调用图谱。
合法使用边界与责任声明
必须强调的是,该技能明确仅适用于合法用途,包括授权的安全研究与渗透测试、符合适用法律的互操作性分析(如欧盟指令 2009/24/EC、美国 DMCA 第 1201 条 f 款)、恶意软件分析与事件响应、以及 CTF 安全竞赛等教育场景。未经授权对他人拥有知识产权的应用进行逆向工程可能触犯计算机欺诈条例和知识产权法,使用者应自行承担全部法律责任。技能仓库中已包含完整的免责声明,明确指出作者不对任何滥用行为承担后果。
在合规前提下,这套 Claude Code 技能为 Android 逆向工程提供了高效、可重复的自动化能力,无论是快速摸清目标应用的 API 架构,还是深入分析特定功能的调用路径,都能显著提升安全研究效率。
资料来源:GitHub 仓库 SimoneAvogadro/android-reverse-engineering-skill