AgentSmithers/x64DbgMCPServer

x64DbgMCPServer made from c# with Claude, Windsurf and Cursor support

这是什么

X64Dbg MCP Server 是一个用于 Windows 专用调试器 x64dbg / x96 / x32dbg 的 C# 插件。它运行一个小型内置 HTTP 服务器,使用 Model Context Protocol (MCP) – 一种用于 LLM 工具(如 Claude、Gemini 等)的简单文本/JSON-over-HTTP 接口。服务器将传入的 MCP 命令转换为 x64dbg API 调用,让 AI 客户端可以检查内存、寄存器、反汇编代码、设置注释/标签、控制线程等,而无需用户手动输入调试器命令。

为什么重要

逆向工程和二进制分析传统上非常依赖手动操作。通过 MCP 暴露调试器,您可以让人工智能模型驱动分析:它可以要求调试器转储模块、设置断点或标记函数,然后使用返回的 JSON 来决定下一步。这使得建立 AI 辅助的逆向工程工作流、自动化重复性任务,以及将调试器集成到更大的安全自动化管道成为可能。

工作原理(高层级)

  1. 插件加载 – 编译后的 DLL(x64DbgMCPServer.dp64)放置在 x64dbg 的 plugins 文件夹中。当用户从插件菜单中选择 Start MCP Server 时,插件会被加载。
  2. 自托管 HTTP 监听器 – 一个轻量级的 HttpListener(无需 ASP.NET Core)绑定到 http://*:50300/sse(或 message)。它接收 MCP 请求,这些请求是包含命令名称和参数的简单 HTTP POST。
  3. 命令分发 – 代码中的方法标记有 [Command] 属性。监听器通过反射检查这些方法,匹配传入的命令名称,解析参数,执行对应的 x64dbg API 调用(例如,读取内存、获取寄存器),并以 JSON 或纯文本返回结果。
  4. AI 客户端 – 外部 MCP 客户端(例如提供的 mcp-csharp-sdk-client 或 Claude 的 MCPProxy STDIO-to-SSE 桥接器)发送提示到服务器。服务器的响应可以反馈给 LLM,形成一个模型决定下一步调试动作的循环。

谁可能使用

  • 安全研究人员,想要原型化 AI 驱动的逆向工程脚本。
  • 红队/蓝队工程师,希望自动化重复的调试任务(例如,定位速度黑客检查、提取模块列表)。
  • 工具构建者,需要在 LLM 和原生调试器之间建立程序化桥接,而无需编写完整的 RPC 层。

快速开始(简要步骤)

  1. 先决条件 – Visual Studio Build Tools 2019+、.NET Framework 4.7.2 和 DllExport 工具。
  2. 构建 – 克隆仓库,运行 DllExport.bat 以启用原生导出,打开 .sln,然后构建。将输出 DLL 重命名为 *.dp64。
  3. 安装 – 将构建好的插件复制到 x64dbg\release\x64\plugins\x64DbgMCPServer。
  4. 运行 – 启动 x64dbg,打开 Plugins → Start MCP Server。
  5. 授予 HTTP 权限(如果未以管理员身份运行):
    netsh http add urlacl url=http://+:50300/sse/ user=Everyone
    
  6. 连接客户端 – 使用提供的 C# 示例客户端或 Claude 的 MCPProxy 桥接器,指向 http://127.0.0.1:50300/sse。
  7. 发出命令 – 发送 JSON 命令,如 ReadMemAtAddress、GetAllRegisters 等;服务器返回适合 LLM 消费的 JSON。

限制与待办事项

  • 并非所有调试器命令都已包装;作者正在添加完整的堆栈/线程/模块转储。
  • 默认监听器绑定到所有接口,需要管理员权限;未来版本旨在仅绑定到 localhost。
  • 某些命令(例如 ExecuteDebuggerCommand)目前无论实际成功与否都返回 true。
  • 仅支持 Windows,因为它依赖 .NET Framework 和 x64dbg 的原生插件模型。

以上所有信息直接取自仓库的 README。

相关

  • 项目
  • 项目
  • 项目
  • 项目