返回市场
jadx人工智能MCP

jadx人工智能MCP

作者:zinja-coder678 星标更新:2025-11-21

项目介绍

# 技术文档摘要

<div align="center">

# JADX-AI-MCP(Zin MCP套件的一部分)

⚡ 完全自动化的MCP服务器 + 与LLM通过MCP通信以分析Android APK的JADX插件——使用像Claude这样的LLMs来发现漏洞、分析APK并轻松进行逆向工程。

![GitHub contributors JADX-AI-MCP](https://img.shields.io/github/contributors/zinja-coder/jadx-ai-mcp)
![GitHub contributors JADX-MCP-SERVER](https://img.shields.io/github/contributors/zinja-coder/jadx-mcp-server)
![GitHub all releases](https://img.shields.io/github/downloads/zinja-coder/jadx-ai-mcp/total)
![GitHub release (latest by SemVer)](https://img.shields.io/github/downloads/zinja-coder/jadx-ai-mcp/latest/total)
![Latest release](https://img.shields.io/github/release/zinja-coder/jadx-ai-mcp.svg)
![Java 11+](https://img.shields.io/badge/Java-11%2B-blue)
![Python 3.10+](https://img.shields.io/badge/python-3%2E10%2B-blue)
[![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)

#### ⭐ 贡献者

感谢这些杰出人士的贡献⭐
<table>
  <tr align="center">
    <td>
      <a href="https://github.com/badmonkey7">
        <img src="https://avatars.githubusercontent.com/u/41368882?v=4" width="30px;" alt=""/>
        <br /><sub><b>badmonkey7</b></sub>
      </a>
    </td>
       <td>
      <a href="https://github.com/tiann">
        <img src="https://avatars.githubusercontent.com/u/4233744?v=4" width="30px;" alt=""/>
        <br /><sub><b>tiann</b></sub>
      </a>
    </td>
    <td>
      <a href="https://github.com/ljt270864457">
        <img src="https://avatars.githubusercontent.com/u/8609890?v=4" width="30px;" alt=""/>
        <br /><sub><b>ljt270864457</b></sub>
      </a>
    </td>
    <td>
      <a href="https://github.com/ZERO-A-ONE">
        <img src="https://avatars.githubusercontent.com/u/18625356?v=4" width="30px;" alt=""/>
        <br /><sub><b>ZERO-A-ONE</b></sub>
      </a>
    </td>
    <td>
      <a href="https://github.com/neoz">
        <img src="https://avatars.githubusercontent.com/u/360582?v=4" width="30px;" alt=""/>
        <br /><sub><b>neoz</b></sub>
      </a>
    </td>
    <td>
      <a href="https://github.com/SamadiPour">
        <img src="https://avatars.githubusercontent.com/u/24422125?v=4" width="30px;" alt=""/>
        <br /><sub><b>SamadiPour</b></sub>
      </a>
    </td>
    <td>
      <a href="https://github.com/wuseluosi">
        <img src="https://avatars.githubusercontent.com/u/192840340?v=4" width="30px;" alt=""/>
        <br /><sub><b>wuseluosi</b></sub>
      </a>
    </td>
    <td>
      <a href="https://github.com/CainYzb">
        <img src="https://avatars.githubusercontent.com/u/50669073?v=4" width="30px;" alt=""/>
        <br /><sub><b>CainYzb</b></sub>
      </a>
    </td>
    <td>
      <a href="https://github.com/tbodt">
        <img src="https://avatars.githubusercontent.com/u/5678977?v=4" width="30px;" alt=""/>
        <br /><sub><b>tbodt</b></sub>
      </a>
    </td>
    <td>
      <a href="https://github.com/LilNick0101">
        <img src="https://avatars.githubusercontent.com/u/100995805?v=4" width="30px;" alt=""/>
        <br /><sub><b>LilNick0101</b></sub>
      </a>
    </td>
    <td>
      <a href="https://github.com/lwsinclair">
        <img src="https://avatars.githubusercontent.com/u/2829939?v=4" width="30px;" alt=""/>
        <br /><sub><b>lwsinclair</b></sub>
      </a>
    </td>
  </tr>
</table>

</div>

<div align="center">
    <img alt="banner" height="480px" widht="620px" src="docs/assets/img.png">
</div>

---

## 🤖 什么是JADX-AI-MCP?

**JADX-AI-MCP** 是一个针对 [JADX 反编译器](https://github.com/skylot/jadx) 的插件,它直接集成了 [模型上下文协议(MCP)](https://github.com/anthropic/mcp),提供实时的反向工程支持,使用像 Claude 这样的大语言模型(LLMs)。

思考: "反编译 → 上下文感知代码审查 → AI 建议" —— 全部实时完成。

#### 高级序列图

```mermaid
sequenceDiagram
LLM CLIENT->>JADX MCP SERVER: 调用 MCP 工具
JADX MCP SERVER->>JADX AI MCP 插件: 发送 HTTP 请求
JADX AI MCP 插件->>请求处理器: 调用 HTTP 请求处理器
请求处理器->>JADX GUI: 执行操作/收集数据
JADX GUI->>请求处理器: 操作执行/数据收集
请求处理器->>JADX AI MCP 插件: 构造 HTTP 响应
JADX AI MCP 插件->>JADX MCP SERVER: HTTP 响应
JADX MCP SERVER->>LLM 客户端: MCP 工具结果

观看演示!

  • 快速分析

https://github.com/user-attachments/assets/b65c3041-fde3-4803-8d99-45ca77dbe30a

  • 快速查找漏洞

https://github.com/user-attachments/assets/c184afae-3713-4bc0-a1d0-546c1f4eb57f

  • 多个AI代理支持

https://github.com/user-attachments/assets/6342ea0f-fa8f-44e6-9b3a-4ceb8919a5b0

  • 使用您喜欢的LLM客户端运行

https://github.com/user-attachments/assets/b4a6b280-5aa9-4e76-ac72-a0abec73b809

  • 分析APK资源

https://github.com/user-attachments/assets/f42d8072-0e3e-4f03-93ea-121af4e66eb1

  • 在使用JADX调试APK时作为您的AI助手

https://github.com/user-attachments/assets/2b0bd9b1-95c1-4f32-9b0c-38b864dd6aec

这是两个工具的组合:

  1. JADX-AI-MCP
  2. JADX MCP SERVER

🤖 什么是JADX-MCP-SERVER?

JADX MCP Server 是一个独立的Python服务器,通过MCP(模型上下文协议)与JADX-AI-MCP插件交互。它允许LLMs实时与反编译的Android应用上下文进行通信。


Zin MCP套件中的其他项目

当前可用的MCP工具

以下MCP工具是可用的:

  • fetch_current_class() — 获取所选类的名称和完整源码
  • get_selected_text() — 获取当前选中的文本
  • get_all_classes() — 列出项目中的所有类
  • get_class_source() — 获取给定类的完整源码
  • get_method_by_name() — 获取方法的源码
  • search_method_by_name() — 在类中搜索方法
  • search_classes_by_keyword() — 搜索源码中包含特定关键字的类(支持分页)
  • get_methods_of_class() — 列出类中的方法
  • get_fields_of_class() — 列出类中的字段
  • get_smali_of_class() — 获取类的smali代码
  • get_main_activity_class() — 从jadx中获取AndroidManifest.xml文件中提到的主要活动类
  • get_main_application_classes_code() — 根据AndroidManifest.xml文件中定义的包名获取所有主要应用程序类的代码
  • get_main_application_classes_names() — 根据AndroidManifest.xml文件中定义的包名获取所有主要应用程序类的名称
  • get_android_manifest() — 获取并返回AndroidManifest.xml的内容
  • get_strings() :获取strings.xml文件
  • get_all_resource_file_names() :检索应用程序中存在的所有资源文件名
  • get_resource_file() :检索资源文件内容
  • rename_class() :重命名类名
  • rename_method() :重命名方法
  • rename_field() :重命名字段
  • debug_get_stack_frames() :从jadx调试器获取堆栈帧
  • debug_get_threads() :从jadx调试器获取线程信息
  • debug_get_variables() :从jadx调试器获取变量

🗒️ 示例提示

🔍 基本代码理解

"解释这个类的作用。"

"总结这个方法的责任。"

"这个类中有任何混淆吗?"

"列出这个类可能需要的所有Android权限。"

🛡️ 漏洞检测

"这个方法中有任何不安全的API使用吗?"

"检查这个类是否有硬编码的秘密或凭据。"

"这个方法在使用之前是否对用户输入进行了清理?"

"这段代码可能会引入哪些安全漏洞?"

🛠️ 逆向工程助手

"去混淆并重命名类和方法,使其可读。"

"你能推断出这个smali方法的原始用途吗?"

"这个类似乎属于哪些库或SDK?"

"告诉我哪些类包含与'加密'相关的代码?"

📦 静态分析

"列出这个类中的所有网络相关API调用。"

"识别文件I/O操作及其潜在风险。"

"这个方法是否会泄露设备信息或个人身份信息(PII)?"

🤖 AI代码修改

"重构这个方法以提高可读性。"

"在这个代码中添加注释,解释每一步。"

"将这个Java方法重写为Python进行分析。"

📄 文档和元数据

"为所有方法生成Javadoc样式的注释。"

"这个类很可能属于哪个包或应用组件?"

"你能识别出Android组件类型(如Activity、Service等)吗?"

🐞 调试助手

   "从调试器获取堆栈帧、变量和线程,并提供摘要"

   "基于调试器的堆栈帧,解释应用程序的执行流程"

   "根据变量的状态,是否存在安全威胁?"

🛠️ 开始使用

1. 从发布页面下载:https://github.com/zinja-coder/jadx-ai-mcp/releases

[!NOTE]

下载jadx-ai-mcp-<version>.jarjadx-mcp-server-<version>.zip文件。

# 0. 下载 jadx-ai-mcp-<version>.jar 和 jadx-mcp-server-<version>.zip
https://github.com/zinja-coder/jadx-ai-mcp/releases

# 1. 
unzip jadx-ai-mcp-<version>.zip

├jadx-mcp-server/
  ├── jadx_mcp.py
  ├── requirements.txt
  ├── README.md
  ├── LICENSE

├jadx-ai-mcp-<version>.jar

# 2. 安装插件

# 你可以采用两种方式:

## 1. 一行命令 - 在你的shell中执行下面的命令
jadx plugins --install "github:zinja-coder:jadx-ai-mcp"

## 上面的一行代码会直接将最新版本的插件安装到jadx中,无需下载jadx-ai-mcp的.jar文件。
## 2. 或者你可以使用JADX-GUI来安装,如下图所示:
<div align="center"> <img alt="banner" height="480px" widht="620px" src="docs/assets/img_1231.png"> </div> <div align="center"> <img alt="banner" height="480px" widht="620px" src="docs/assets/img_1123.png"> </div> <div align="center"> <img alt="banner" height="480px" widht="620px" src="docs/assets/img_2122.png"> </div>
## 3. 使用GUI方法,下载.jar文件并按照以下步骤操作

img.png img_1.png img_2.png img_3.png

# 3. 导航到 jadx-mcp-server 目录
cd jadx-mcp-server

# 4. 该项目使用uv - https://github.com/astral-sh/uv 来代替pip进行依赖管理。
    ## a. 安装uv(如果还没有安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
    ## b. 可选,如果在jadx-mcp-server中遇到依赖错误,请设置环境
uv venv
source .venv/bin/activate  # 或 .venv\Scripts\activate 在Windows上
    ## c. 可选 安装依赖
uv pip install httpx fastmcp

# jadx-ai-mcp 和 jadx_mcp_server 的设置已完成。

🤖 2. 使用Claude Desktop

确保Claude Desktop正在运行并且启用了MCP。

例如,我使用了以下方法在Kali Linux上安装:https://github.com/aaddrick/claude-desktop-debian

配置并将MCP服务器添加到LLM文件中:

nano ~/.config/Claude/claude_desktop_config.json

对于:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

并在其中添加以下内容:

{
    "mcpServers": {
        "jadx-mcp-server": {
            "command": "/<path>/<to>/uv", 
            "args": [
                "--directory",
                "</PATH/TO/>jadx-mcp-server/",
                "run",
                "jadx_mcp_server.py"
            ]
        }
    }
}

替换:

  • path/to/uv 为实际的uv可执行文件路径
  • path/to/jadx-mcp-server 为克隆此仓库的实际路径

然后,通过内置集成导航代码并通过实时代码审查提示进行交互。

或者

或者你可以直接使用以下命令安装jadx_mcp_server作为可执行文件:

uv tool install git+https://github.com/zinja-coder/jadx-mcp-server

然后你只需在mcp配置的command部分提供jadx_mcp_server

3. 使用Cherry Studio

如果你想在Cherry Studio中配置MCP工具,可以参考以下配置。

  • 类型:stdio
  • 命令:uv
  • 参数:
--directory
path/to/jadx-mcp-server
run
jadx_mcp_server.py
  • path/to/jadx-mcp-server 为克隆此仓库的实际路径

4. 使用LMStudio

你也可以通过配置其mcp.json文件来使用JADX AI MCP Server与LM Studio。这里有一个视频指南。

https://github.com/user-attachments/assets/b4a6b280-5aa9-4e76-ac72-a0abec73b809

5. 在HTTP流模式下运行

你还可以使用--http选项与jadx_mcp_server.py一起在HTTP流模式下运行Jadx,如下所示:

uv run jadx_mcp_server.py --http

或者

uv run jadx_mcp_server.py --http --port 9999

6. 自定义端口配置用于JADX AI MCP插件

<img width="800" height="335" alt="image" src="https://gips2.baidu.com/it/u=986673037,1469091204&fm=3081&app=3081&f=PNG?w=800&h=335" />
  1. 配置端口:配置JADX AI MCP插件将监听的端口。