Jadx反编译插件

一个为Jadx设计的Java插件,通过HTTP暴露Jadx API,支持通过MCP协议与Claude等客户端进行实时交互,用于AI辅助的Android应用安全分析。

  • by mobilehackinglab
  • Java
  • 本地部署
  • 105 星标
  • 更新于
在 GitHub 查看 mobilehackinglab/jadx-mcp-plugin

使用说明

⚙️ Jadx MCP插件——通过MCP访问Claude的反编译程序

该项目提供了 Jadx 插件编写于 Java,这暴露了 基于HTTP的Jadx API --通过MCP客户端实现实时交互,如 克劳德 通过 模型上下文协议(MCP).轻便 FastMCP Python中的适配器充当Claude和插件之间的桥梁。这使得逆向工程工作流程的智能导航和自动化成为可能,是人工智能辅助Android应用程序安全分析的理想选择。


🧰 安装说明

# Clone this repository
git clone https://github.com/mobilehackinglab/jadx-mcp-plugin.git
cd jadx-mcp-plugin

# Create and activate a virtual environment
python3 -m venv venv

# Activate:
source venv/bin/activate      # Linux/Mac
.\venv\Scripts\activate       # Windows

安装Python依赖项

pip install -r requirements.txt 

🧠 设置Claude MCP客户端集成

要在Claude Desktop中使用此适配器,请转到 File -> Settings -> Developer -> Edit Config -> claude_desktop_config.json 并添加一个指向venv中Python可执行文件的MCP服务器(以防止依赖性问题)和完整的适配器路径,如下例所示:

窗户:

{
  "mcpServers": {
    "Jadx MCP Server": {
      "command": "C:\\Workset\\jadx-mcp-plugin\\venv\\Scripts\\python.exe",
      "args": ["C:\\Workset\\jadx-mcp-plugin\\fastmcp_adapter.py"]
    }
  }
}

MacOS/Linux:

{
  "mcpServers": {
    "Jadx MCP Server": {
      "command": "/Users/yourname/jadx-mcp-plugin/venv/bin/python",
      "args": ["/Users/yourname/jadx-mcp-plugin/fastmcp_adapter.py"]
    }
  }
}

编辑配置后,请确保重新启动(退出)Claude。 重新启动后,它应该看起来像这样:

✅ 使用流程

  1. 打开 Jadx 使用来自的最新插件JAR 释放 放置在其 plugins/ 文件夹或通过加载 Plugins -> install plugin.

  2. 加载APK或DEX文件

  3. (可选)您可以通过以下方式启动Jadx来指定HTTP接口地址:

    jadx-gui -Pjadx-mcp.http-interface=http://localhost:8085
    

    如果您想更改默认主机/端口,这很有用(http://localhost:8085).

    注: 如果您在此处更改了接口地址,请确保同时更新中的相应URL fastmcp_adapter.py 为了匹配。

  4. Claude将检测并激活Jadx MCP服务器工具。

  5. 现在,您可以列出类、获取源代码、检查方法/字段以及实时提取代码。


🧪 提供的工具

工具 说明
list_all_classes 获取所有反编译的类名
search_class_by_name 查找与字符串匹配的类
get_class_source 获取给定类的完整源代码
search_method_by_name 查找与字符串匹配的方法
get_methods_of_class 列出类中的所有方法名
get_fields_of_class 列出类中的所有字段名
get_method_code 提取方法的反编译代码

🛠 发展

☕ Java插件

Java插件位于:

plugin/src/main/java/com/mobilehackinglab/jadxplugin/McpPlugin.java

它使用 JadxPlugin APIjadx.api.*)致:

  • 加载反编译的类和方法
  • 通过嵌入式HTTP服务器提供结构化数据
  • 回应 /invoke 和 /tools 端点

🚀 Gradle任务的自动安装

您可以使用以下Gradle任务一步构建和安装插件:

./gradlew installPlugin

这使用了 jadx plugins CLI。确保Jadx已安装并在您的 PATH.

有关其他插件相关任务(卸载、启用/禁用),请参阅中的任务定义 plugin/build.gradle.

🔧 手动安装

要构建插件,请执行以下操作:

./gradlew build
# Output: plugin/build/libs/jadx-mcp-plugin-<version>.jar

使用以下命令安装插件JAR jadx plugins CLI:

jadx plugins --install-jar path/to/jadx-mcp-plugin-<version>.jar

或者,放置已构建的 .jar 将文件存入您的Jadx plugins/ 文件夹,通常位于: ~/.jadx/plugins/

如果您手动放置JAR,您还需要通过Jadx GUI或运行以下命令来启用插件:

jadx plugins --enable jadx-mcp

Python FastMCP适配器

适配器文件为:

fastmcp_adapter.py

它将Claude的MCP工具调用转换为HTTP POST到正在运行的Jadx插件服务器。确保Jadx已打开 之前 开始克劳德。


🤝 贡献

欢迎PR、功能请求和工具扩展!
该项目由以下人员维护 移动黑客实验室.


🧩 鸣谢