关于 x64dbg MCP
x64dbg MCP 将 MCP 客户端连接到运行中的 x64dbg 或 x32dbg 会话,用于受控调试与逆向分析。它可采集运行时证据、生成并验证二进制文件,并通过文件哈希和模块 RVA 将结果交给 IDA。
主要功能
- 01启动或附加到调试进程
- 02检查寄存器、内存、线程和断点
- 03采集运行时跟踪与覆盖率
- 04查找字符串、OEP 和导入候选项
- 05转储并验证 PE 文件
- 06与 IDA 交换证据
适用场景
- 01在调试器中分析可执行文件
- 02恢复并验证解包后的二进制文件
- 03将运行时发现传入 IDA 数据库
MCP 相关
通过进程管理、调试、运行时证据采集、文件恢复和 IDA 交接等工具,为 MCP 客户端提供对 x64dbg 和 x32dbg 会话的受控操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
https://github.com/user-attachments/assets/07b813eb-4175-4f14-b21b-602548906398
x64dbg MCP 为 MCP 客户端提供受控方式,以操作真实的 x64dbg 或 x32dbg 会话。它将实时调试转化为可重放的逆向工程工作流:绑定准确的进程、观察运行时事实、提取有用的产物、独立验证,并将证据交给 IDA。
功能
- 使用参数、工作目录、环境和子进程策略启动或附加进程。
- 读取和修改寄存器、内存、线程、模块及自行创建的断点。
- 捕获指令、API、堆、异常和基本块证据。
- 查找比较值、运行时字符串、间接调用、OEP 和导入项。
- 生成内存 PE 转储、迷你转储、修复导入的文件和已修补的导出项。
- 使用便携的 文件 SHA-256 + 模块 RVA 标识与 IDA 交换运行时事实,而非不稳定的运行时地址。
工具组
| 工作流 | 代表性工具 | 结果 |
|---|---|---|
| 启动和绑定 | InitDebuggee、AttachToProcess、LaunchFileUnderDebugger、WaitForBreakpoint | 可复现的进程和会话标识 |
| 实时控制 | RegisterGet、RegisterSet、MemoryRead、MemoryWrite、DebugSetBreakpoint、SetHardwareBreakpoint | 受控的执行、内存和断点更改 |
| 运行时证据 | RunNativeTrace、GetNativeTrace、StartApiTrace、StartHeapTrace、GetBasicBlockCoverage、WaitForBreakpointCapture | 指令路径、API/堆调用、异常和已执行的代码块 |
| 密钥与脱壳恢复 | SearchStrings、ScanMemoryStrings、PatternFindMem、FindOEP、RunUntilOEP、FindIATCandidates、InspectRuntimeIAT | 比较值、字符串、OEP 和运行时导入候选项 |
| 转储和修复 | WriteMiniDump、DumpModuleRaw、DumpPeFromMemory、ScanMemoryForPEImages、FixDumpImports、ValidateDump、ExportPatchedFile | 可重放的转储和经过独立检查的 PE 产物 |
| IDA 证据交接 | ExportRuntimeEvidence、ImportStaticAnnotations、SyncBreakpoints、ResolveModuleRva | 以哈希/RVA 寻址的注释、标签、覆盖率和 API 事实 |
完整目录、参数和响应契约请参阅工具参考。精简配置会缩短面向模型的常规响应;需要完整证据时,可使用 detail="full" 和 full 配置。
快速设置
从 Releases下载适用于 Windows 的组合包。包中包含两个原生插件和 Python 后端:
- 用于 x64dbg 的
plugins\MCPx64dbg.dp64 - 用于 x32dbg 的
plugins\MCPx64dbg.dp32 runtime\src和runtime\requirements.txt- 位于
runtime\tools\bin\managed_probe下的独立 x64/x86 托管运行时探针
关闭 x64dbg/x32dbg。在包含已下载 ZIP 的文件夹中打开 PowerShell,然后运行下面的代码块。它会询问 MCP 组合包的保存位置以及 x64dbg 的安装位置;无需假定驱动器或安装目录。请保持此 PowerShell 窗口打开,以便运行下面针对不同客户端的命令。
$Archive = Get-ChildItem -File .\x64dbg-mcp-windows-*.zip |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
if (-not $Archive) { throw 'The x64dbg MCP release ZIP was not found in this folder.' }
$BundleRoot = Read-Host 'Absolute folder where x64dbg MCP should be extracted'
$X64dbgRoot = Read-Host 'Absolute folder containing the x64 and x32 x64dbg folders'
$BundleRoot = [IO.Path]::GetFullPath(
[Environment]::ExpandEnvironmentVariables($BundleRoot.Trim()))
$X64dbgRoot = (Resolve-Path -LiteralPath (
[Environment]::ExpandEnvironmentVariables($X64dbgRoot.Trim()))).Path
if (-not (Test-Path -LiteralPath (Join-Path $X64dbgRoot 'x64\x64dbg.exe'))) {
throw "x64dbg.exe was not found under $X64dbgRoot\x64"
}
if (-not (Test-Path -LiteralPath (Join-Path $X64dbgRoot 'x32\x32dbg.exe'))) {
throw "x32dbg.exe was not found under $X64dbgRoot\x32"
}
Expand-Archive -LiteralPath $Archive.FullName -DestinationPath $BundleRoot -Force
Copy-Item (Join-Path $BundleRoot 'plugins\MCPx64dbg.dp64') `
(Join-Path $X64dbgRoot 'x64\plugins\MCPx64dbg.dp64') -Force
Copy-Item (Join-Path $BundleRoot 'plugins\MCPx64dbg.dp32') `
(Join-Path $X64dbgRoot 'x32\plugins\MCPx64dbg.dp32') -Force
$RuntimeRoot = Join-Path $BundleRoot 'runtime'
Set-Location $RuntimeRoot
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
$PythonExe = (Resolve-Path .\.venv\Scripts\python.exe).Path
$Launcher = (Resolve-Path .\src\mcp_stdio_launcher.py).Path
[pscustomobject]@{
PythonExe = $PythonExe
Launcher = $Launcher
X64dbgRoot = $X64dbgRoot
}
Codex
将服务添加到 ~\.codex\config.toml。将三个尖括号括起的值替换为设置代码块打印出的绝对路径。TOML 单引号字符串会按原样保留 Windows 反斜杠。
[mcp_servers.x64dbg]
command = '<PythonExe>'
args = ['<Launcher>']
startup_timeout_sec = 90
[mcp_servers.x64dbg.env]
X64DBG_ROOT = '<X64dbgRoot>'
X64DBG_MCP_TOOL_PROFILE = 'compact'
对于正常的目标启动,直接使用 EXE 路径调用 InitDebuggee。它会检测 x86/x64,从 X64DBG_ROOT 启动相应的调试器,等待桥接程序就绪并打开目标。无需单独进行 BridgeHello 预检,也无需手动搜索调试器路径。
可选安装检查:启动 x64dbg 或 x32dbg,并验证桥接程序:
& $PythonExe (Join-Path $RuntimeRoot 'src\x64dbg.py') GetDebuggerPluginStatus
GetScyllaHideStatus.installed 和 integrationReady 描述 MCP InjectorCLI/HookLibrary 后端。guiPluginPresent 仅描述可选的 x64dbg GUI 插件;MCP 注入不需要该插件。
ScyllaHide 默认不启用:启动工具默认使用 use_scyllahide="off",而 auto 也会跳过注入。需要时,请使用 force 并指定配置文件。CLI 后端会在注入器旁暂存一个专用 INI,并以确切的 PID 为目标。其兼容性配置会同时禁用 NtContinueHook 和 KillAntiAttach,以避免复现的继续执行崩溃;结果中会报告这些覆盖项。但这并不能保证每个第三方配置文件都兼容所有目标或 Windows 版本。
Claude Code
使用用户范围将同一 stdio 服务添加到 Claude Code。此命令使用设置代码块所选的路径,而不是写入特定于某台机器的位置:
$ClaudeServer = [ordered]@{
command = $PythonExe
args = @($Launcher)
env = [ordered]@{
X64DBG_ROOT = $X64dbgRoot
X64DBG_MCP_TOOL_PROFILE = 'compact'
}
} | ConvertTo-Json -Depth 4 -Compress
claude mcp add-json x64dbg $ClaudeServer --scope user
claude mcp list
或者,运行 claude mcp add,并通过交互方式输入相同的命令、参数和环境变量。
Claude Desktop 和其他 stdio 客户端
使用客户端的 MCP JSON 配置。对于 Windows 上的 Claude Desktop,配置文件为 %APPDATA%\Claude\claude_desktop_config.json。使用上文所选的实际路径生成 JSON 配置块:
$ClientConfig = [ordered]@{
mcpServers = [ordered]@{
x64dbg = [ordered]@{
command = $PythonExe
args = @($Launcher)
env = [ordered]@{
X64DBG_ROOT = $X64dbgRoot
X64DBG_MCP_TOOL_PROFILE = 'compact'
}
}
}
}
$ClientConfig | ConvertTo-Json -Depth 6
Cursor、VS Code MCP、Windsurf 和其他 stdio 客户端使用相同的 command/args/env 约定;只有 JSON 文件的位置不同。
从源代码构建
git clone https://github.com/rison1337/x64dbgMCP.git
Set-Location x64dbgMCP
cmake -S . -B build -G "Visual Studio 17 2022" -DX64DBG_DOWNLOAD_SDK=ON
cmake --build build --target all_plugins --config Release
$X64dbgRoot = (Resolve-Path -LiteralPath (Read-Host 'x64dbg installation folder')).Path
Copy-Item build\build64\Release\MCPx64dbg.dp64 `
(Join-Path $X64dbgRoot 'x64\plugins\MCPx64dbg.dp64') -Force
Copy-Item build\build32\Release\MCPx64dbg.dp32 `
(Join-Path $X64dbgRoot 'x32\plugins\MCPx64dbg.dp32') -Force
IDA Pro MCP Fusion 交接
IDA 工作流是为 rison1337/ida-pro-mcp-fusion fork 设计的。x64dbg MCP 不会冒充 IDA 的替代品,也不会暗中修改无关数据库。具体流程如下:
ExportRuntimeEvidence会写入一份带版本的证据文档,其中包含目标 SHA-256、架构、模块 RVA、已执行代码块、API 调用、注释、标签和函数。ResolveModuleRva和协调器会将实时地址规范化为静态映像标识。tools/ida_evidence_coordinator.py会验证打开的 Fusion 数据库是否具有相同的 SHA-256 和架构,然后创建确定性的set_name、set_comments、define_func以及覆盖率/API 注释操作。- Fusion 会在其 IDA 工作线程中应用这些操作,并可将结果保留在持久化 SQLite 缓存中,以供后续多二进制文件分析使用。
这是一种显式的工件/协议交接方式,因此过程可检查、可重试。IDA 端工作线程和缓存模型请参阅协调器和 Fusion README。
文档
CI 覆盖 Python 契约和两种原生插件架构。发布工作流还会检查打包后的 stdio 服务和托管探针。实时调试器门禁在本地运行并保留 JSON 报告;请参阅贡献指南。 请在一次性 VM 中分析不可信二进制文件。
GPL-3.0。基于 x64dbgMCP by Sam W (Wasdubya)。 归属信息请参阅 NOTICE。
x64dbg MCP 可让 MCP 客户端安全地控制真实的 x64dbg 或 x32dbg 会话。它将实时调试转化为可复现的逆向工程工作流:绑定准确的进程,采集运行时事实,恢复有用的产物,独立验证结果,并将事实传递给 IDA。
功能
- 使用参数、cwd、环境和子进程策略启动或附加到进程。
- 寄存器、内存、线程、模块和断点,并控制其所有权。
- 指令、API、heap、异常跟踪和基本块证据。
- 搜索比较操作、运行时字符串、间接调用、OEP 和导入项。
- 从内存中提取 PE、生成 minidump、修复 IAT,并导出已修补的文件。
- 通过可移植的 文件 SHA-256 + module RVA 组合与 IDA 交换数据,而不是使用不稳定的运行时 VA。
工具组
| 阶段 | MCP 工具示例 | 结果 |
|---|---|---|
| 启动与绑定 | InitDebuggee、AttachToProcess、LaunchFileUnderDebugger、WaitForBreakpoint | 可复现的进程和准确的会话标识 |
| 控制 | RegisterGet、RegisterSet、MemoryRead、MemoryWrite、DebugSetBreakpoint、SetHardwareBreakpoint | 受控的运行/单步执行、内存和断点 |
| 运行时证据 | RunNativeTrace、GetNativeTrace、StartApiTrace、StartHeapTrace、GetBasicBlockCoverage、WaitForBreakpointCapture | 指令路径、API/heap、异常和已执行块 |
| 搜索关键内容与脱壳 | SearchStrings、ScanMemoryStrings、PatternFindMem、FindOEP、RunUntilOEP、FindIATCandidates、InspectRuntimeIAT | 比较操作、字符串、OEP 和运行时 IAT 候选项 |
| 转储与恢复 | WriteMiniDump、DumpModuleRaw、DumpPeFromMemory、ScanMemoryForPEImages、FixDumpImports、ValidateDump、ExportPatchedFile | 可重复的转储和经过验证的 PE 产物 |
| 传递给 IDA | ExportRuntimeEvidence、ImportStaticAnnotations、SyncBreakpoints、ResolveModuleRva | 基于 hash/RVA 的注释、labels、覆盖率和 API 事实 |
完整目录、参数和响应契约请参阅工具参考。compact 配置会缩短常规响应;detail="full" 和 full 配置会返回全部证据。
快速设置
从 Releases 下载单个 Windows 压缩包。其中已包含两个原生插件和 Python backend:
plugins\MCPx64dbg.dp64,用于 x64dbgplugins\MCPx64dbg.dp32,用于 x32dbgruntime\src和runtime\requirements.txtruntime\tools\bin\managed_probe中独立的 x64/x86 托管运行时探针
关闭 x64dbg/x32dbg。在下载的 ZIP 所在文件夹中打开 PowerShell,并执行下面的代码块。它会提示你选择 MCP 文件夹和已安装的 x64dbg 路径——不会预设驱动器或安装位置。在为选定的 MCP 客户端执行完命令之前,请不要关闭此 PowerShell 窗口。
$Archive = Get-ChildItem -File .\x64dbg-mcp-windows-*.zip |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
if (-not $Archive) { throw 'Архив релиза x64dbg MCP не найден в этой папке.' }
$BundleRoot = Read-Host 'Полный путь к папке, куда распаковать x64dbg MCP'
$X64dbgRoot = Read-Host 'Полный путь к папке x64dbg, содержащей каталоги x64 и x32'
$BundleRoot = [IO.Path]::GetFullPath(
[Environment]::ExpandEnvironmentVariables($BundleRoot.Trim()))
$X64dbgRoot = (Resolve-Path -LiteralPath (
[Environment]::ExpandEnvironmentVariables($X64dbgRoot.Trim()))).Path
if (-not (Test-Path -LiteralPath (Join-Path $X64dbgRoot 'x64\x64dbg.exe'))) {
throw "x64dbg.exe не найден в $X64dbgRoot\x64"
}
if (-not (Test-Path -LiteralPath (Join-Path $X64dbgRoot 'x32\x32dbg.exe'))) {
throw "x32dbg.exe не найден в $X64dbgRoot\x32"
}
Expand-Archive -LiteralPath $Archive.FullName -DestinationPath $BundleRoot -Force
Copy-Item (Join-Path $BundleRoot 'plugins\MCPx64dbg.dp64') `
(Join-Path $X64dbgRoot 'x64\plugins\MCPx64dbg.dp64') -Force
Copy-Item (Join-Path $BundleRoot 'plugins\MCPx64dbg.dp32') `
(Join-Path $X64dbgRoot 'x32\plugins\MCPx64dbg.dp32') -Force
$RuntimeRoot = Join-Path $BundleRoot 'runtime'
Set-Location $RuntimeRoot
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
$PythonExe = (Resolve-Path .\.venv\Scripts\python.exe).Path
$Launcher = (Resolve-Path .\src\mcp_stdio_launcher.py).Path
[pscustomobject]@{
PythonExe = $PythonExe
Launcher = $Launcher
X64dbgRoot = $X64dbgRoot
}
Codex
在 ~\.codex\config.toml 中添加服务器。将尖括号中的三个值替换为设置区块打印出的绝对路径。TOML 单引号字符串中的 Windows 反斜杠无需加倍。
[mcp_servers.x64dbg]
command = '<PythonExe>'
args = ['<Launcher>']
startup_timeout_sec = 90
[mcp_servers.x64dbg.env]
X64DBG_ROOT = '<X64dbgRoot>'
X64DBG_MCP_TOOL_PROFILE = 'compact'
要正常启动目标,请直接调用 InitDebuggee 并传入 EXE 路径。工具会自行识别 x86/x64,从 X64DBG_ROOT 启动相应的 debugger,等待 bridge 就绪并打开目标。无需单独通过 BridgeHello 检查,也无需手动查找 x64dbg 路径。
可选的安装检查:启动 x64dbg 或 x32dbg 并检查 bridge:
& $PythonExe (Join-Path $RuntimeRoot 'src\x64dbg.py') GetDebuggerPluginStatus
GetScyllaHideStatus.installed 和 integrationReady 字段对应基于 InjectorCLI、HookLibrary 和 profile INI 的后端。guiPluginPresent 仅表示是否存在可选的 x64dbg GUI 插件;MCP 注入不需要它。
ScyllaHide 需要显式启用:启动工具默认使用 use_scyllahide="off",auto 也会跳过注入。如有需要,请使用 force 并选择配置文件。CLI 后端会在 injector 旁创建单独的 INI,并传入确切的 PID。为避免复现的继续执行时崩溃问题,它会同时禁用 NtContinueHook 和 KillAntiAttach,并在结果中报告这些更改。配置文件中其他设置的兼容性取决于目标和 Windows。
Claude Code
使用用户范围配置,在 Claude Code 中添加同一个 stdio 服务器。命令使用上文选定的路径,而不是其他计算机上的路径:
$ClaudeServer = [ordered]@{
command = $PythonExe
args = @($Launcher)
env = [ordered]@{
X64DBG_ROOT = $X64dbgRoot
X64DBG_MCP_TOOL_PROFILE = 'compact'
}
} | ConvertTo-Json -Depth 4 -Compress
claude mcp add-json x64dbg $ClaudeServer --scope user
claude mcp list
或者运行 claude mcp add,然后交互式输入相同的 command、args 和 env。
Claude Desktop 和其他 stdio 客户端
使用客户端的 MCP JSON 配置。在 Windows 上,Claude Desktop 的配置文件路径为 %APPDATA%\Claude\claude_desktop_config.json。使用实际选定的路径生成 JSON:
$ClientConfig = [ordered]@{
mcpServers = [ordered]@{
x64dbg = [ordered]@{
command = $PythonExe
args = @($Launcher)
env = [ordered]@{
X64DBG_ROOT = $X64dbgRoot
X64DBG_MCP_TOOL_PROFILE = 'compact'
}
}
}
}
$ClientConfig | ConvertTo-Json -Depth 6
Cursor、VS Code MCP、Windsurf 和其他 stdio 客户端使用相同的 command/args/env 契约;区别仅在于 JSON 文件路径。
从源代码构建
git clone https://github.com/rison1337/x64dbgMCP.git
Set-Location x64dbgMCP
cmake -S . -B build -G "Visual Studio 17 2022" -DX64DBG_DOWNLOAD_SDK=ON
cmake --build build --target all_plugins --config Release
$X64dbgRoot = (Resolve-Path -LiteralPath (Read-Host 'Папка установки x64dbg')).Path
Copy-Item build\build64\Release\MCPx64dbg.dp64 `
(Join-Path $X64dbgRoot 'x64\plugins\MCPx64dbg.dp64') -Force
Copy-Item build\build32\Release\MCPx64dbg.dp32 `
(Join-Path $X64dbgRoot 'x32\plugins\MCPx64dbg.dp32') -Force
与 IDA Pro MCP Fusion 同步
此集成专为 rison1337/ida-pro-mcp-fusion 分支设计。x64dbg MCP 不会取代 IDA,也不会写入任意数据库:
ExportRuntimeEvidence会保存带版本号的 JSON,其中包含目标的 SHA-256、架构、module RVA、已执行的代码块、API 调用、labels、comments 和函数。ResolveModuleRva和 coordinator 会将运行时地址转换为静态映像坐标。tools/ida_evidence_coordinator.py会核对已打开的 Fusion 数据库的 SHA-256 和架构,并构建确定性的set_name、set_comments、define_func操作以及 coverage/API 注释。- Fusion 会在自己的 IDA worker 中应用这些操作,并可将结果保存到持久化 SQLite cache,供后续 multi-binary 研究使用。
这是明确、可验证且可重复的 artifact/protocol 交接,而非通过不稳定 VA 建立的隐式连接。详情请参阅:coordinator 和 Fusion README。
文档
CI 会检查 Python 契约和两种架构的 native 插件。Release 工作流还会检查构建归档中的 stdio 服务器和 managed probes。Debugger 实时检查在本地运行并保存 JSON 报告;请参阅参与贡献。请在一次性 VM 中分析未知二进制文件。
GPL-3.0。此项目基于 x64dbgMCP Sam W (Wasdubya)。 归属信息:NOTICE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。