duty1g/x64dbg-mcp-server · 上手攻略
- 仓库:duty1g/x64dbg-mcp-server
- 链接:https://github.com/duty1g/x64dbg-mcp-server
- 分类:开发者工具 · 调试器 · MCP
- 作者:Jay
- 更新:2026-08-25
这是什么
x64dbg-MCP-Server 是一个将 x64dbg 调试器通过 MCP(Model Context Protocol) 协议暴露为 HTTP 服务的原生插件。使用 Zig 语言编写,零外部依赖,一个插件文件同时支持 x32 和 x64 架构。连接任何 MCP 兼容的 AI 助手(如 Claude Code),即可通过自然语言控制 x64dbg:设置断点、单步执行、读取内存、查看寄存器、扫描特征码等——整个逆向工程的对话式自动化成为可能。
解决什么问题
传统逆向工程中,AI 助手只能生成伪代码或建议,无法直接与真实调试器交互。每次验证假设都需要人类在 IDA/x64dbg 中手动操作。"AI 写 payload → 复制进调试器 → 执行 → 观察结果"的循环极慢,且 AI 无法感知调试器状态。
x64dbg-MCP-Server 把这个循环彻底打破:AI 每次调用工具后,调试器的状态(寄存器、内存、调用栈、断点)作为 JSON 返回给 AI,AI 可以在同一会话中根据最新状态调整策略——真正实现闭环的自动化逆向分析。
快速安装
方式一:下载预编译插件(推荐)
- 前往 Releases 页面 下载最新
x64dbg-MCP-Server-vX.X.zip - 解压,将
dist/下的所有文件复制到 x64dbg 根目录(与x64dbg.exe同级),覆盖插件目录 - 启动 x64dbg,插件自动加载,MCP 服务在后台运行
方式二:从源码构建(需要 Zig 0.13+)
git clone https://github.com/duty1g/x64dbg-mcp-server
cd x64dbg-mcp-server
zig build -Doptimize=ReleaseFast
# 输出在 zig-out/bin/
MCP 客户端配置
将以下内容加入 .mcp.json(Streamable HTTP 模式,推荐):
{
"mcpServers": {
"x64dbg": {
"type": "http",
"url": "http://localhost:9094/",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}
}
}
首次运行 x64dbg 时会自动生成访问令牌,可在插件菜单中修改 IP/端口/令牌。默认端口:x64 → 9094,x32 → 9095。
SSE 兼容旧客户端:
{
"mcpServers": {
"x64dbg": {
"type": "sse",
"url": "http://localhost:9094/sse",
"headers": {
"Authorization": "Bearer YOUR_TOKEN_HERE"
}
}
}
}
核心用法
典型 AI 辅助逆向会话示例
用户:加载 calc.exe,在入口点下断点并运行
AI:[调用 LoadBinary, SetBreakpoint, run, WaitForPause]
→ 已加载 calc.exe,在 0x7FF7A1234000 处命中断点
用户:当前寄存器状态是什么?
AI:[调用 GetAllRegisters]
RAX: 0x0, RCX: 0x7FF7A1234000, RDX: 0x1, ...
用户:在当前指令指针处读取 64 字节
AI:[调用 ReadMemory]
48 83 EC 28 E8 12 34 00 00 ...
用户:单步越过 3 条指令,然后显示调用栈
AI:[调用 StepOver x3, GetCallStack]
→ 已步进到 0x7FF7A1234010,调用栈:...
84 个 MCP 工具分类速查
| 分类 | 核心工具 |
|---|---|
| 执行控制 | run(恢复执行)、StepInto(F7)、StepOver(F8)、StepOut(Ctrl+F9)、PauseDebug(F12)、StopDebug、RestartDebug |
| 断点 | SetBreakpoint、SetHardwareBreakpoint、SetConditionalBreakpoint、EnableBreakpoint、DisableBreakpoint、DeleteBreakpoint、ListBreakpoints |
| 内存 | ReadMemory、WriteMemToAddress、AllocateMemory、FreeMemory、GetMemoryMap、FindPattern、GetPatches、RestorePatches |
| 寄存器 | GetAllRegisters、SetRegister |
| 反汇编 | Disassemble(N 条指令)、DisassembleFunction(整函数)、Assemble(在地址处汇编)、GetFunctions |
| 模块 | ListModules、AnalyzeModule、DetectOEP、DumpModule、GetImports、GetExports、ListSymbols、SearchSymbols |
| 线程 | GetThreads、SwitchThread、SuspendThread、ResumeThread |
| 栈/检查 | GetCallStack、GetSEHChain、GetPEB、GetReferences、GetStrings、EvalExpression、GetCurrentAddress |
典型适用场景
- AI 辅助恶意软件分析:AI 自动遍历恶意软件的控制流,每步观察寄存器/内存变化,比手动单步快数倍
- 自动化漏洞验证:给定 PoC,AI 用 MCP 工具自动加载、设断点、观察崩溃条件是否符合预期
- 固件逆向:x64dbg 支持调试固件模拟环境中的 x64 代码,AI 可以在不知道固件入口的情况下通过符号搜索和内存扫描找到关键逻辑
- 游戏作弊检测:用
FindPattern扫描游戏进程内存定位作弊特征码,AI 根据扫描结果进一步分析 - GUI 应用行为探索:结合
GetEventLog监控异常事件,AI 在异常处自动暂停并报告
坑与注意
⚠️ Bearer Token 必须配置:默认开启令牌认证,未配置 Authorization header 的请求会被拒绝。
⚠️ x32/x64 端口不同:x64 调试目标默认使用端口 9094,x32 使用 9095,注意不要混用。
⚠️ WSL/远程连接:WSL 或远程机器访问时,需在插件配置中将绑定地址改为 0.0.0.0(默认仅 127.0.0.1),并使用宿主机的 IP 地址。
⚠️ 运行(run)会阻塞:v1.1 后 run 工具默认阻塞最多 5 分钟(最长 10 分钟),防止 AI 在目标运行时进入空闲。如果需要 AI 在运行期间做其他事情,可以在 run 前设置好断点,或使用 WaitForEvent 长轮询。
⚠️ Windows 专用:x64dbg 本身是 Windows 软件,该插件仅在 Windows 上运行。
⚠️ 版本 v1.1(2026-08-24)最新:引入了 WaitForEvent(长轮询事件)、AnalyzeCode(代码分析)、TraceOver(跟踪跳过)等 12 个新工具,建议优先使用最新版本。
与同类对比
| 工具 | 架构 | 协议 | 依赖 | AI 集成方式 |
|---|---|---|---|---|
| x64dbg-MCP-Server | 原生插件(Zig) | MCP(HTTP/SSE) | 零依赖 | 直接暴露 84 个调试工具 |
| x64dbg Python 插件 | Python 脚本 | 无(本地调用) | 需 Python 运行时 | 只能手动调用 |
| GDB MCP Server | Python | MCP | Python | 只能用于 Linux 程序调试 |
| WinDbg ML Integration | 官方扩展 | 私有 | 需 WinDbg | 闭源,命令式交互 |
| x64dbg TitanEngine | 内部库 | 私有 | 绑定 DLL | 手动操作,无 AI 协议层 |
核心优势:唯一一个将 x64dbg 全功能以标准 MCP 协议暴露的项目,AI 客户端无需了解 x64dbg 命令语法,直接用工具名和参数操作。
一句话推荐结论
如果你在做 Windows x64 逆向工程且希望 AI 能够闭环感知和操控调试状态,x64dbg-MCP-Server 是目前最完整的解决方案——零依赖、一个插件、84 个工具、v1.1 刚刚发布,值得上手。