返回市场
x64调试数据库MCP服务器

x64调试数据库MCP服务器

作者:AgentSmithers210 星标更新:2025-11-19

项目介绍

X64Dbg MCP Server(插件)

此项目是一个用于构建适用于 x96/x64/x32dbg 的 MCP(内存命令协议)服务器插件的起点。该项目使用 C# 在仅限 Windows 的经典 .NET Framework 平台上进行开发(无需 ASP.NET Core 主机)。

该插件充当 MCP 客户端与调试器之间的轻量级 HTTP 接口桥接,允许您通过远程和程序化的方式让 LLM MCP 客户端交互式地发送命令以检查内存、反汇编、查询寄存器、操作标签/注释等。

除了与 x64dbg 调试引擎的基本绑定之外,此模板还提供了一个干净的项目结构、内置的命令系统以及一个简单的 HTTP 监听器,它通过基于文本的 API 暴露您的命令。 image

功能

  • ✅ 自托管 HTTP 命令接口(无需 ASP.NET Core)
  • ✅ 轻量级、零依赖项二进制部署
  • ✅ 模块化命令及参数映射
  • ✅ 直接与寄存器、内存、线程、反汇编交互
  • ✅ 双向 AI/LLM 命令支持
  • ✅ 不重启 x64dbg 即可重新加载插件
  • ✅ 表达式函数和菜单扩展支持

光标支持

光标连接:

{
  "mcpServers": {
    "AgentSmithers X64Dbg MCP Server": {
      "url": "http://127.0.0.1:50300/sse"
    }
  }
}

image

image

Claude 桌面支持

需要 MCPProxy STIDO<->SSE 桥接:https://github.com/AgentSmithers/MCPProxy-STDIO-to-SSE/tree/master

Claude 配置连接:

{
  "mcpServers": {
    "x64Dbg": {
      "command": "C:\\MCPProxy-STDIO-to-SSE.exe",
      "args": ["http://localhost:50300"]
    }
  }
}

image

image

Windsurf 支持

需要 MCPProxy STIDO<->SSE 桥接:https://github.com/AgentSmithers/MCPProxy-STDIO-to-SSE/tree/master

Claude 配置连接:

{
  "mcpServers": {
    "AgentSmithers x64Dbg STDIO<->SSE": {
      "command": "C:\\MCPProxy-STDIO-to-SSE.exe",
      "args": ["http://localhost:50300"]
    }
  }
}

image

已知问题:直接使用 SSE 时出现上下文超时(超时)问题。

X64Dbg MCP 客户端 - 需要客户端示例?

mcp-csharp-sdk-client.zip

打开项目 编辑 Program.cs 文件中的第 590 行,并输入从 Google Cloud API 获取的 GeminiAI 密钥。 编辑 Program.cs 文件中的第 615 行,并输入您的 MCP 服务器 IP 地址:Location = "http://192.168.x.x:50300/sse", 打开您的 x96 调试器,日志应反映服务器自动加载。 若要手动与服务器交互而不是使用 AI,请取消注释第 634 行并注释掉第 635 行。 在客户端上点击开始调试,AI 应自动执行位于第 434 行(Program.cs)的提示。 image

访问最新的客户端样本作为与此项目集成的起点:https://github.com/AgentSmithers/mcp-csharp-sdk-client/

样本对话:

AI 被分配加载文件,计数内部模块并开始标记重要材料功能。

https://github.com/AgentSmithers/x64DbgMCPServer/blob/master/Sample1

单次射击速度黑客识别

https://github.com/AgentSmithers/x64DbgMCPServer/blob/master/Sample2

先决条件

要构建和运行此项目,您需要:

  • Visual Studio 构建工具(2019 v16.7 或更高版本)
  • .NET Framework 4.7.2 SDK
  • 3F/DllExport

开始使用

克隆或分叉项目:git clone https://github.com/AgentSmithers/x64DbgMCPServer

下载 DLlExport.bat 并将其放置在项目的根文件夹中(解决方案 [.sln] 文件所在的位置)。然后,运行 DllExport.bat

对于 X86 / 32位支持,您必须通过“添加/删除 Windows 组件”在“添加或删除程序”(appwiz.cpl)中安装 .NET Framework 2.0 和 .NET Framework 3.5。

在 DllExport GUI 中,

  1. 勾选 已安装 复选框。
  2. 将 DllExport 的命名空间设置为 System.Runtime.InteropServices
  3. 选择目标平台(x64x86)。
  4. 点击应用。 <img width="518" height="462" alt="image" src="https://gips2.baidu.com/it/u=3476711234,2338263731&fm=3081&app=3081&f=PNG?w=518&h=462" />

打开 .sln 解决方案文件并构建。

如果您遇到此错误,请清理并重新构建 DotNetPlugin.Stub。 <img width="998" height="155" alt="image" src="https://gips2.baidu.com/it/u=453829818,845324579&fm=3081&app=3081&f=PNG?w=998&h=155" />

📌 提示:如果看到 x64DbgMCPServer.dll 在输出文件夹中,请将其重命名为 x64DbgMCPServer.dp64,以便 x64dbg 可以加载插件。

将文件(x64DbgMCPServer\bin\x64\Debug)复制到 x64DBG 插件(x96\release\x64\plugins\x64DbgMCPServer)文件夹中以运行。 注意:如果插件文件夹不存在,请创建它,并创建一个 x64DbgMCPServer 子文件夹并将文件复制进去。 image

<img width="880" height="463" alt="image" src="https://gips0.baidu.com/it/u=906307827,3404561000&fm=3081&app=3081&f=PNG?w=880&h=463" />

加载时的样本调试日志 image

启动调试器,转到插件 -> 点击“启动 MCP 服务器”

通过 SSE 在端口 50300 上使用您首选的 MCP 客户端连接到它。

检查命令结果

一些 x64dbg 命令不会返回有意义的布尔值。使用这些辅助方法:

  • ExecuteDebuggerCommandWithVar: 执行命令并在之后读取调试器变量。 示例:

    • ExecuteDebuggerCommandWithVar command="init notepad.exe" resultVar=$pid pollMs=100 pollTimeoutMs=5000
    • 返回 $pid 的值(例如,0x1234);非零表示已启动
  • ExecuteDebuggerCommandWithOutput: 执行命令并捕获日志输出。 示例:

    • ExecuteDebuggerCommandWithOutput command="bplist"
    • 返回由命令生成的日志文本

故障排除

启动 MCP 服务器时“访问被拒绝”

如果您在 x64dbg 日志(Alt+L)中看到“无法启动 MCP 服务器:访问被拒绝”,这是因为 Windows 需要特殊权限才能监听 HTTP URL。您有两个选项:

选项 1:以管理员身份运行(快速修复)

  • 右键单击 x64dbg.exe 并选择“以管理员身份运行”

选项 2:授予 URL 权限(推荐) 在提升权限的 PowerShell/命令提示符中运行以下命令:

netsh http add urlacl url=http://+:50300/sse/ user=Everyone
netsh http add urlacl url=http://+:50300/message/ user=Everyone

运行这些命令后,您可以正常启动 x64dbg,MCP 服务器将正常工作。

*确保您运行 powershell 的 "Unblock-File " 命令以移除任何阻止下载文件的限制。

使用 X64Dbg MCP 客户端的样本命令

我已经验证了几个命令,它们效果很好。我特别兴奋的是使用这个系统来探索如何通过 AI 辅助逆向工程来简化安全工作流程。 一旦 MCP 服务器运行(通过 x64dbg 中的插件菜单),您可以发出如下命令:

ExecuteDebuggerCommand command=init C:\InjectGetTickCount\InjectSpeed.exe
ExecuteDebuggerCommand command="AddFavouriteCommand Log s, NameOfCmd"
ReadDismAtAddress addressStr=0x000000014000153f, byteCount=5
ReadMemAtAddress addressStr=00007FFA1AC81000, byteCount=5
WriteMemToAddress addressStr=0x000000014000153f, byteString=90 90 90 90 90 90
CommentOrLabelAtAddress addressStr=0x000000014000153f, value=Test, mode=Comment
CommentOrLabelAtAddress addressStr=0x000000014000153f, value=
GetAllRegisters
GetLabel addressStr=0x000000014000153f
GetAllActiveThreads
GetAllModulesFromMemMap
GetCallStack
这些命令返回 JSON 或文本格式化的输出,适合 AI 模型或集成脚本的摄入。示例:

image image

调试

DotNetPlugin.Impl 包含项目构建后命令中的以下内容。更新它以反映正确的 x64dbg 路径,以便更快地调试。 重建后,X64Dbg 将自动加载新插件,如有需要,可以重新附加到 X64Dbg 实例。

xcopy /Y /I "$(TargetDir)*.*" "C:\Users\User\Desktop\x96\release\x64\plugins\x64DbgMCPServer"
C:\Users\User\Desktop\x96\release\x64\x64dbg.exe

正在积极实现多个功能

并非每个命令都完全实现,尽管我正在积极工作以支持完整的堆栈、线程和模块转储供 AI 查询。

工作原理

MCP 服务器运行一个简单的 HTTP 监听器,并将传入的命令路由到用 [Command] 属性标记的 C# 方法。这些方法可以执行任何逻辑(例如,内存读取、反汇编、设置断点)并将数据以结构化格式返回给 MCP 客户端。

已知问题

ExecuteDebuggerCommand 总是返回 true,因为它指的是评论成功执行,而不是实际命令的结果。(已实施修复,需检查。)
当前已编译版本设置为侦听所有 IP 地址上的 50300 端口,因此需要管理员权限。未来版本将检测这一点,并仅侦听 127.0.0.1,这样就可以在没有管理员权限的情况下使用。(参见“故障排除”部分)

如果 x64/x32 dbg 启动时崩溃,请确保 DLL 没有被 Windows 阻止。 这会导致 .NET Framework 因安全原因拒绝加载程序集。

特别感谢

⚡ 在 Adams85 的 DotNetPluginCS 的帮助下,经过大约 20 小时的专注编码和 MCP 协议审查,我们得到了一个相当不错的自包含 HTTP MCP 服务器插件的证明概念。

集成说明

这个项目最令人满意的一个方面是克服了完全自包含地构建 HTTP 服务器的挑战——没有 Kestrel,没有 ASP.NET,只有原始的 HttpListener 为您的逆向工程自动化提供动力。

我计划继续改进这个代码库,作为我进入 AI 辅助分析、实现安全性和自动化工具的一部分。

如果您希望获得帮助创建自己的集成、扩展此插件或讨论潜在用途——请随时联系(参见存储库或我的个人资料中的联系方式)。我很乐意与探索这一领域的其他人合作和学习。

💻 让我们更聪明地逆向工程,而不是更艰难地逆向工程。

干杯 🎉

Https://ControllingTheInter.net