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

  1. 下载 .xpi 或从 zip 中取出 .jar 文件
  2. JADX GUI → 工具 → 附加组件 → 齿轮图标 → "Install Add-on From File"
  3. 选择 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

第四步:启动使用

  1. 运行 JADX GUI,打开任意 .apk 文件
  2. 确认顶部工具栏出现 🔨(锤子)图标
  3. 点击锤子图标,选择 MCP 工具
  4. 用自然语言提问,如: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 信息摘要

典型适用场景

  1. APK 漏洞检测:选中可疑类,问 Claude:"这个类是否有硬编码密钥或明文密码传输?"
  2. 快速代码审查:拿到一个混淆的 APK,选中某个类让 AI 解释业务逻辑,节省逆向时间
  3. 反混淆辅助:用 rename_class 让 AI 根据语义给混淆类起有意义的名字
  4. Android 恶意软件分析:结合 debugger 信息,让 AI 分析恶意行为
  5. 第三方 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