zinja-coder/jadx-ai-mcp · 上手攻略
- 仓库:zinja-coder/jadx-ai-mcp
- 链接:https://github.com/zinja-coder/jadx-ai-mcp
- 分类:agent / llm-infra · reverse-engineering · Android
- 作者:Tom
- 更新:2026-08-11
它是什么
jadx-ai-mcp 是一套为 JADX(Android APK 反编译器)接入 Model Context Protocol(MCP)的插件 + 服务器组合。安装后,LLM(如 Claude)可以通过 MCP 协议实时读取 JADX 反编译出的 Java/Smali 代码,进行漏洞检测、代码理解、反混淆和逆向辅助——整个过程在 JADX GUI 内完成,无需切换工具。
核心链路:JADX GUI(用户操作)↔ MCP 插件 ↔ jadx-mcp-server(Python)↔ LLM(Claude/Cursor/LM Studio 等)
解决什么问题
传统 APK 逆向分析流程:反编译 → 人工读代码 → 找漏洞 → 手工分析依赖关系。JADX 本身是出色的反编译器,但代码理解依赖人工,大型 APK 几万行类根本看不过来。
JADX-AI-MCP 把 AI 带入逆向现场:选定一个类,Claude 立刻能解释它的功能、检查安全隐患、建议重命名,甚至帮你理解混淆后的代码。不用复制粘贴代码到 ChatGPT,AI 直接在反编译器里看到你正在分析的真实上下文。
快速安装
系统要求
- JADX(从 releases 下载)
- Python 3.10+(含 pip)
- uv 包管理器(推荐)
- MCP 兼容的 LLM 客户端(Claude Desktop、Cursor、LM Studio 等)
安装步骤
第一步:下载 releases
前往 https://github.com/zinja-coder/jadx-ai-mcp/releases ,下载:
- jadx-ai-mcp-<version>.zip(含 MCP server)
- 或直接用命令行安装最新版(见下)
方法一:一行命令安装插件(推荐)
jadx plugins --install "github:zinja-coder:jadx-ai-mcp"
方法二:手动安装 .jar
- 下载
.xpi或从 zip 中取出.jar文件 - JADX GUI → 工具 → 附加组件 → 齿轮图标 → "Install Add-on From File"
- 选择 jar,重启 JADX
第二步:设置 MCP Server
# 解压 zip
unzip jadx-ai-mcp-<version>.zip
# 进入 MCP server 目录
cd jadx-mcp-server
# 安装 uv(如尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建虚拟环境并安装依赖
uv venv
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate # Windows
uv pip install httpx fastmcp
第三步:配置 Claude Desktop
nano ~/.config/Claude/claude_desktop_config.json
加入 MCP server 配置:
{
"mcpServers": {
"jadx-mcp-server": {
"command": "/home/<YOUR_USER>/.local/bin/uv",
"args": [
"--directory",
"</PATH/TO/>jadx-mcp-server/",
"run",
"jadx_mcp.py"
]
}
}
}
- Windows 路径:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
第四步:启动使用
- 运行 JADX GUI,打开任意
.apk文件 - 确认顶部工具栏出现 🔨(锤子)图标
- 点击锤子图标,选择 MCP 工具
- 用自然语言提问,如:
fetch currently selected class and perform quick SAST on it
HTTP 模式(无 MCP 客户端时)
# 默认端口 8000
uv run jadx_mcp_server.py --http
# 指定端口
uv run jadx_mcp_server.py --http --port 9999
核心 MCP 工具一览
| 工具 | 功能 |
|---|---|
fetch_current_class() |
获取当前选中类的完整 Java 源码 |
get_selected_text() |
获取当前选中的文本 |
get_all_classes() |
列出 APK 内所有类 |
get_class_source(class_name) |
获取指定类的完整源码 |
get_method_by_name(class, method) |
获取指定方法的源码 |
search_method_by_name(name) |
跨类搜索同名方法 |
get_methods_of_class(class) |
列出类的所有方法 |
get_fields_of_class(class) |
列出类的所有字段 |
get_smali_of_class(class) |
获取 Smali 反汇编代码 |
get_main_activity_class() |
获取 AndroidManifest.xml 声明的主 Activity |
get_android_manifest() |
获取完整 AndroidManifest.xml |
get_strings() |
获取 strings.xml 资源文件 |
xrefs_to_class/class_name) |
查找类的所有引用位置 |
rename_class/method/field/variable/package |
AI 反混淆重命名 |
debug_get_stack_frames/variables/threads |
debugger 信息摘要 |
典型适用场景
- APK 漏洞检测:选中可疑类,问 Claude:"这个类是否有硬编码密钥或明文密码传输?"
- 快速代码审查:拿到一个混淆的 APK,选中某个类让 AI 解释业务逻辑,节省逆向时间
- 反混淆辅助:用
rename_class让 AI 根据语义给混淆类起有意义的名字 - Android 恶意软件分析:结合 debugger 信息,让 AI 分析恶意行为
- 第三方 SDK 分析:想了解某 SDK 实际做了什么,直接反编译 + AI 分析
坑与注意
⚠️ 早期开发阶段:作者在 README 中明确声明"still in early stage of development, expects bugs, crashes and logical errors"——生产环境谨慎使用。
⚠️ 需要 JADX GUI 正在运行:MCP server 依赖 JADX GUI 的插件接口,JADX 必须保持打开状态。
⚠️ Claude Desktop 配置路径:Windows/macOS/Linux 配置文件路径各不相同,配置错误 MCP 连接不上。
⚠️ uv 路径要写对:command 字段必须是 uv 的实际路径(which uv 查看),不能用 /usr/local/bin/uv 想当然填写。
⚠️ 与 JADX 原版不同:这是 fork 版 JADX(jadx-ai),不是直接在原版 JADX 上装插件——需要安装专门的 jadx-ai 版本。
⚠️ 安全性:反编译他人 APK 涉及法律风险,工具本身声明仅用于教育研究和授权安全测试。
⚠️ HTTP 模式:不需要 MCP 客户端时可用 --http 模式,但功能可能受限。
与同类对比
| 工具 | 核心能力 | AI 集成方式 | 支持 LLM |
|---|---|---|---|
| jadx-ai-mcp | APK 反编译 + AI 实时分析 | MCP 协议,直接 JADX GUI | Claude/Cursor/LM Studio 等 |
| 原版 JADX | APK 反编译 | 无 AI | — |
| jadx + ChatGPT | APK 反编译 + AI 分析 | 手动复制粘贴 | 任意 |
| Ghidra + AI | 二进制逆向 | 脚本/插件 | 有限 |
| APKTool | APK 资源反编译 | 无 AI | — |
jadx-ai-mcp 的差异化优势:AI 在反编译器里直接看到代码上下文,无需手动复制;MCP 协议让多客户端复用成为可能。
一句话推荐结论
做 Android 逆向又不想来回切换工具?jadx-ai-mcp 把 Claude 直接接进 JADX——选中哪个类,AI 就分析哪个类,反编译+AI 代码审查一气呵成。
⚠️ 本工具仅用于教育研究和授权安全测试,请遵守当地法律法规。 原始仓库:https://github.com/zinja-coder/jadx-ai-mcp