jadx-ai-mcp环境搭建AI逆向分析JAVA代码

⚡ 全自动 MCP 服务器 + JADX 插件,通过 MCP 与 LLM 通信,使用 Claude 等 LLM 分析 Android APK — 轻松发现漏洞、分析 APK 和进行逆向工程。

https://github.com/zinja-coder/jadx-ai-mcp

🤖 JADX-AI-MCP是什么?

JADX-AI-MCP是JADX 反编译器的一个插件,它直接与模型上下文协议 (MCP)集成,为 Claude 等 LLM提供实时逆向工程支持。

想象一下:“反编译 → 上下文感知代码审查 → AI 建议”——所有过程都是实时进行的。

高级序列图

在这里插入图片描述

参与者与角色

  • LLM Client:发起调用的模型客户端。

  • JADX MCP Server:向 LLM 暴露工具的 MCP 服务端。

  • JADX AI MCP Plugin:具体工具实现,负责把请求转成 HTTP 并路由到处理器。

  • Request Handlers:HTTP 请求处理层,协调具体动作。

  • JADX GUI:被操作的图形界面,执行实际任务并产生数据。

主流程(自左向右)

  1. LLM Client 调用 MCP 工具到 JADX MCP Server。
  2. MCP Server 将其转为一次 HTTP 请求,发送给 JADX AI MCP Plugin。
  3. Plugin 触发内部的 HTTP Request Handler。
  4. Handler 驱动 JADX GUI 执行动作/采集数据。
  5. GUI 完成动作/产出数据,回传给 Handler。
  6. Handler 组织结果,生成 HTTP 响应给 Plugin。
  7. Plugin 将 HTTP 响应返回给 MCP Server。
  8. MCP Server 把工具结果返回给 LLM Client。

关键要点

  • 插件(JADX AI MCP Plugin)是协议与应用之间的“桥”,完成 MCP→HTTP→应用 的适配。

  • Request Handlers 将业务动作解耦为可路由的 HTTP 端点,便于扩展。

  • GUI 是真实“执行者”,说明该链路能触发交互式或可视化操作,再回传结果。

🤖 JADX-MCP-SERVER 是什么?

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

🛠️ 入门指南

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

下载这两个jadx-ai-mcp-<version>.jar文件jadx-mcp-server-<version>.zip

  • 0:下载文件

    • 从发布页下载插件和服务端包:GitHub Releases
    • 需要两个文件:
      • jadx-ai-mcp-<version>.jar(JADX 插件)
      • jadx-mcp-server-<version>.zip(MCP 服务端源码/脚本)
  • 1:解压

    • 解压 jadx-ai-mcp-<version>.zip 后应包含:
├─ jadx-mcp-server/
│  ├─ jadx_mcp.py
│  ├─ requirements.txt
│  ├─ README.md
│  ├─ LICENSE
├─ jadx-ai-mcp-<version>.jar
  • 含义:

    • jadx-ai-mcp-<version>.jar:要装到 JADX 的插件文件。
    • jadx-mcp-server/:Python 实现的 MCP 服务端项目(后续可用来与插件通信)。
  • 2:安装插件(两种方式二选一)

    • 方式 1:一行命令安装最新版(推荐)
      • 在命令行执行:
jadx plugins --install "github:zinja-coder:jadx-ai-mcp"
- 作用:直接把最新版本插件装入 JADX 的插件目录,无需手动下载 `.jar`。

在这里插入图片描述

  • 方式 2:通过 JADX-GUI 手动安装本地 jar
    • 打开 JADX-GUI
    • 进入插件管理(Plugins/插件)
    • 选择“从本地文件安装/添加”之类的选项
    • 选择你下载好的 jadx-ai-mcp-<version>.jar 并确认
    • 按提示重启 JADX-GUI 即可生效

以上完成后,插件已安装;jadx-mcp-server 目录则是后续在本地运行 MCP 服务端用的项目。

在这里插入图片描述

  • 方式3:图形用户界面方法:下载 .jar 文件,并按照图中所示步骤操作。

在这里插入图片描述

  • 第 3 步:进入目录

    • 执行:
      cd jadx-mcp-server
      
    • 作用:切换到 jadx-mcp-server 项目的根目录,后续命令都在这里执行。
  • 第 4 步:本项目用 uv 管理依赖(替代 pip/venv)

    • uv 是 Astral 出品的 Python 包与环境管理工具,安装/解析依赖更快,内置缓存。

    • a) 安装 uv(若未安装)

      • Linux/macOS:

        curl -LsSf https://astral.sh/uv/install.sh | sh
        
      • Windows(PowerShell):

        irm https://astral.sh/uv/install.ps1 | iex
        

        若闪退使用下面的,或者问AI

        powershell -NoExit -ExecutionPolicy Bypass -NoProfile -Command "irm https://astral.sh/uv/install.ps1 | iex"
        

        在这里插入图片描述

        执行上述命令后,uv将成功安装到你的系统中。接下来,重启power或者使用红色框里面的设置命令

    • b) 可选:如果在 jadx-mcp-server 中遇到依赖报错,创建并启用虚拟环境

      • 创建虚拟环境:
        uv venv
        
      • 激活虚拟环境:
        • Linux/macOS:
          source .venv/bin/activate
          
        • Windows:
          .venv\Scripts\activate
          
    • c) 可选:安装所需依赖到当前虚拟环境

      uv pip install httpx fastmcp
      

      执行过的

      PS D:\jadx-mcp-server-v4.0.0\jadx-mcp-server> uv venv
      Using CPython 3.8.10 interpreter at: C:\Users\yang\AppData\Local\Programs\Python\Python38\python.exe
      Creating virtual environment at: .venv
      Activate with: .venv\Scripts\activate
      PS D:\jadx-mcp-server-v4.0.0\jadx-mcp-server> uv pip install httpx fastmcp
        x No solution found when resolving dependencies:
        `-> Because the current Python version (3.8.10) does not satisfy Python>=3.10 and all versions of fastmcp depend on
            Python>=3.10, we can conclude that all versions of fastmcp cannot be used.
            And because you require fastmcp, we can conclude that your requirements are unsatisfiable.
      
  • 完成效果

    • 至此,jadx-ai-mcp 插件配套的 jadx_mcp_server 运行环境已就绪;后续即可在该环境中启动/开发服务端并与插件联动
  • 第5步:打开trae配置mcp

    这里使用trae,cursor,Claude Desktop 或者 任意的带有mcp的就可以了

    在这里插入图片描述

    然后进行手动添加

    "jadx-mcp-server": {
        "command": "uv",
        "args": [
            "--directory",
            "D:\\jadx-mcp-server-v4.0.0\\jadx-mcp-server\\",
            "run",
            "jadx_mcp_server.py"
        ]
    }
    

    或者 用自带的python,注意自带的python 需要安装上面说的 httpx fastmcp 两个包。

    "jadx-mcp-server": {
      "command": "C:\\Users\\yang\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
      "args": [
        "D:\\jadx-mcp-server-v4.0.0\\jadx-mcp-server\\jadx_mcp_server.py"
      ]
    }
    
03-26
### 逆向工程与反编译概述 逆向工程是一种通过对软件的目标代码进行分析,将其转化为更高级别的表示形式的过程。这一过程通常用于研究现有系统的内部结构、功能以及实现细节。在Java和Android领域,反编译工具被广泛应用于逆向工程中。 #### Java逆向工程中的Jad反编译工具 Jad是一款经典的Java反编译工具,能够将`.class`字节码文件转换为可读的`.java`源代码[^1]。虽然它可能无法完全恢复原始源代码,但它提供了足够的信息来帮助开发者理解已编译的Java程序逻辑。Jad支持多种反编译模式,并允许用户自定义规则以适应不同的需求。此外,其命令行接口和图形界面使得复杂代码分析变得更加便捷。 #### Android逆向工程中的JEB反编译工具 针对Android应用的逆向工程,JEB是由PNF Software开发的一款专业级工具[^2]。相较于其他同类产品,JEB不仅具备强大的APK文件反编译能力,还能对Dalvik字节码执行高效而精准的操作。它的核心优势在于以下几个方面: - **广泛的平台兼容性**:除Android外,还支持ARM、MIPS等多种架构的二进制文件反汇编。 - **混淆代码解析**:内置模块能有效应对高度混淆的代码,提供分层重构机制以便于深入分析- **API集成支持**:允许通过编写Python或Java脚本来扩展功能并完成特定任务。 #### APK反编译流程及其意义 当涉及到具体的APK包时,可以通过一系列步骤提取其中的信息来进行全面的安全评估或者学习目的的研究工作[^3]。这些步骤一般包括但不限于获取资产目录(`assets`)内的资源数据;解密XML配置文档如`AndroidManifest.xml`定位应用程序启动点;最后利用上述提到的各种专用软件重现整个项目框架供进一步探讨。 ```bash # 使用apktool反编译APK示例 apktool d your_app.apk -o output_directory/ ``` 以上命令展示了如何借助开源工具ApkTool轻松拆卸目标安卓档案至易于探索的状态下。 ### 结论 无论是传统的桌面端还是现代移动端环境里头,恰当运用合适的反编译解决方案都是达成逆向工程项目成功不可或缺的一环。每种工具有各自专精之处,在实际应用场景当中应当依据具体需求做出明智的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和沐阳学逆向

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值