Token导航 LogoToken导航TokenDH.com
K Ghidra MCP logo
AI代理未说明官方级别未说明来源级核验

K Ghidra MCP

MCP Server

KGhidraMCP是一个嵌入Ghidra插件的模型上下文协议(MCP)服务器,允许LLMs自主逆向工程应用程序,通过原生Kotlin实现将Ghidra核心功能暴露给MCP客户端。

工具数

29

提示词数

0

GitHub Stars

0

资源数

0
Kotlin逆向工程ClaudeClaude DesktopClaudeCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

nonsleepr

提供方

nonsleepr

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

KGhidraMCP

KGhidraMCP是一个直接嵌入Ghidra插件中的模型上下文协议(MCP)服务器,允许LLM自主地对应用程序进行逆向工程。它通过原生Kotlin实现将Ghidra核心功能中的许多工具暴露给MCP客户端。

建筑

这是一个 原生Kotlin实现 它将MCP服务器直接嵌入Ghidra插件中,消除了对外部Python桥的需求。

graph TD
    A[MCP Client
Claude Desktop, Cline, Roo, etc.] -->|MCP Protocol over SSE| B[Kotlin MCP Server
embedded in Ghidra plugin]
    B -->|Direct API calls| C[Ghidra Analysis Engine]

主要优势

  • 单个工件:没有Python依赖,只有Ghidra插件
  • 本地MCP协议:使用官方Kotlin SDK直接实现
  • 更好的性能:无HTTP→ python→ MCP翻译开销
  • 类型安全:Kotlin的类型系统+MCP模式验证
  • SSE本地:通过Ktor内置流媒体支持
  • 更容易部署:安装插件,配置端口,完成

特性

  • 在Ghidra中分解和分析二进制文件
  • 自动重命名方法、变量和数据
  • 列出方法、类、导入、导出和字符串
  • 按名称搜索功能
  • 添加注释并设置函数签名
  • 导航交叉引用
  • 所有工具都支持对大型数据集进行分页

可用工具

插件暴露 29个MCP工具 按类别组织:

反编译工具(6个工具)

  • get_function_by_address -按地址获取功能信息
  • get_current函数 -在光标处获取函数
  • 反编译函数 -按名称分解
  • 反编译函数byaddress -按地址分解
  • 反汇编函数 -获取程序集列表
  • list_functions -列出所有功能

列表工具(8个工具)

  • list_方法 -列出函数名称(分页)
  • list_classes -列出类/命名空间名称(分页)
  • list_segments -列出内存段(分页)
  • list_imports -列出导入符号(分页)
  • list_导出 -列出导出符号(分页)
  • list_namespaces -列出命名空间(分页)
  • list_data_items -列出定义的数据(分页)
  • list_strings -列出带筛选器的字符串(分页)

搜索工具(1个工具)

  • 搜索_功能_名称 -按子字符串搜索函数

修改工具(4个工具)

  • 重命名函数 -按名称重命名函数
  • 重命名功能byaddress -按地址重命名函数
  • 重命名变量 -重命名局部变量
  • 重命名数据 -重命名数据标签

注释工具(4个工具)

  • set_decompiler_注释 -添加反编译器注释
  • set_disasassembly_commend -添加拆卸注释
  • set_function_prototype -设置函数签名
  • set_local_variable_type -设置变量类型

导航工具(6个工具)

  • get_current地址 -获取光标地址
  • get_current函数信息 -在光标位置获取函数
  • 获取_xrefs_to -获取地址引用(分页)
  • get_xrefs_from -从地址获取引用(分页)
  • get_function_xref -获取函数外部参照(分页)
  • get_caller函数 -获取函数的调用者(分页)

安装

先决条件

  • 吉德拉 11.0或更高版本
  • Java 17或更高版本

安装插件

  1. 从源代码下载最新版本或内部版本
  2. 运行Ghidra
  3. 选择 FileInstall Extensions
  4. 点击 + 按钮
  5. 选择 KGhidraMCP.zip 文件
  6. 重新启动Ghidra
  7. 在CodeBrowser工具中,转到 FileConfigure...
  8. 在“杂项”下,选中“KGhidraMCPPlugin”框
  9. 点击“确定”

配置插件

该插件可以通过Ghidra的工具选项进行配置:

  1. 首选 EditTool Options
  2. 导航至 KGhidraMCP Server
  3. 配置:

- 服务器端口:MCP服务器的端口(默认值:3001) - 自动启动服务器:加载插件时启动服务器(默认值:true)

备注:端口更改需要重新加载插件或重新启动Ghidra。

MCP客户端配置

MCP服务器运行在 http://localhost:3001/ 默认情况下(可在Ghidra中配置)。服务器使用 服务器发送事件(SSE) 运输独家。

克劳德桌面

添加到您的Claude Desktop配置(claude_desktop_config.json):

{
  "mcpServers": {
    "ghidra": {
      "type": "sse",
      "url": "http://localhost:3001/"
    }
  }
}

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Cline(VS代码)

使用KGhidraMCP 克莱恩:

  1. 打开Cline并选择 MCP Servers 在顶端
  2. 选择 Remote Servers 并添加:

- 服务器名称:KGhidraMCP - 服务器URL: http://localhost:3001/

或者,在中手动配置 cline_mcp_settings.json:

{
  "mcpServers": {
    "ghidra": {
      "type": "sse",
      "url": "http://localhost:3001/"
    }
  }
}

房间代码(VS代码)

要将KGhidraMCP与Roo代码一起使用,请添加到 .roo/mcp.json:

{
  "mcpServers": {
    "ghidra": {
      "type": "sse",
      "url": "http://localhost:3001/"
    }
  }
}

ChatGPT(OpenAI)

要将KGhidraMCP与ChatGPT结合使用(需要Pro、Team或Enterprise计划):

  1. 启用 开发者模式 在ChatGPT中:

- 前往设置→ 连接器→ 高级→ 开发者模式

  1. 添加自定义MCP连接器:

- 点击“创建”或“添加连接器” - 将SSE URL设置为: http://localhost:3001/ - 配置任何所需的身份验证(如果适用)

备注:开发人员模式是测试版功能。确保您的ChatGPT计划支持自定义连接器。

VS代码副本

要在VS代码中将KGhidraMCP与GitHub Copilot一起使用:

  1. 打开VS代码设置(JSON格式)
  2. 添加以下MCP服务器配置:
{
  "github.copilot.chat.mcp.servers": {
    "ghidra": {
      "type": "sse",
      "url": "http://localhost:3001/"
    }
  }
}

或者,通过配置 mcp.json 在您的工作区或用户设置目录中。

其他MCP客户端

对于支持SSE连接的任何MCP客户端,请使用端点:

http://localhost:3001/

服务器使用 SSE(服务器发送事件) 运输独家。确保您的MCP客户端支持SSE远程服务器。

用法示例

使用克劳德桌面

配置后,您可以通过Claude与Ghidra交互:

You: "Decompile the function at address 0x1400010a0"

Claude: [Uses decompile_function_by_address tool]
Here's the decompiled code:
...
You: "Find all functions that contain 'encrypt' in their name"

Claude: [Uses search_functions_by_name tool]
Found 3 functions:
- encrypt_data at 0x14000a120
- decrypt_data at 0x14000a340
- init_encryption at 0x14000a560
You: "Rename the function at 0x1400010a0 to process_input"

Claude: [Uses rename_function_by_address tool]
Successfully renamed function to 'process_input'

从源头构建

先决条件

  • Java 17或更高版本
  • Gradle 8.x或更高版本
  • Ghidra 11.0或更高版本
  • GHIDRA_INSTALL_DIR 将环境变量设置到Ghidra安装目录

构建步骤

  1. 设置 GHIDRA_INSTALL_DIR 环境变量:
   export GHIDRA_INSTALL_DIR=/path/to/ghidra
  1. 构建扩展:
   gradle clean packageExtension
  1. 可安装的扩展将在以下位置创建:
   dist/KGhidraMCP.zip

使用NixOS/develnv

如果您使用提供的devenv环境:

# Enter the devenv shell
devenv shell

# Build the extension
gradle clean packageExtension

技术细节

技术栈

  • 语言:Kotlin 2.1.0
  • MCP-SDK:官方Kotlin SDK 0.5.0
  • 服务器哪个 3.0.0 (净 + SSE)
  • 序列化:kotlinx.序列化1.6.2
  • 异步:kotlinx.coroutines 1.7.3

线程安全

所有Ghidra API调用都会通过 GhidraContext 包装,确保线程安全。

错误处理

所有工具都遵循一致的错误处理:

  • 异常被捕获并作为结构化错误响应返回
  • 缺少参数会触发明确的错误消息
  • 对无效地址或不存在的函数进行妥善处理

分页

返回大型数据集的工具支持通过以下方式进行分页 offsetlimit 参数:

  • 默认 offset: 0
  • 默认 limit: 100
  • 最大 limit:用户可自定义每个查询

鸣谢

目录标签

目录标签

Kotlin逆向工程Claude云端部署Ghidra插件Kotlin实现MCP协议LLM集成

支持客户端

Claude DesktopClaudeCline

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

29

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP