Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

x64dbg-MCP Server

MCP-powered agentic reverse engineering for x64dbg.

Stars Version Downloads Language License Red Team Reverse Engineering Twitter

FeaturesInstallUsageToolsConfigurationBuildingStructure

x64dbg-MCP Server is a native MCP (Model Context Protocol) plugin for x64dbg that exposes the debugger's full functionality over HTTP. Connect any MCP-compatible AI assistant and control x64dbg programmatically: set breakpoints, step through code, read memory, dump registers, and more.

Built with Zig — zero dependencies, single-binary output, cross-compiles to both x32 and x64 from any host. No .NET, no Python, no runtime — just drop the plugin into your x64dbg plugins folder and go.

MCP 2024-11-05 — Streamable HTTP + SSE transports, JSON-RPC 2.0.

Features

  • 84 MCP Tools: Full debugger control — disassembly, stepping, breakpoints, memory allocation, registers, modules, threads, call stack, pattern scanning, string extraction, xrefs, symbols, bookmarks, PE analysis, OEP detection, module dumping, PEB/SEH inspection, tracing, and more.
  • 22 Event Callbacks: Full debugger event coverage — init, stop, breakpoint, exception, step, attach/detach, DLL load/unload, threads, and more.
  • Zero Dependencies: Pure native plugin, no runtime or framework needed.
  • x32 and x64: Single codebase, builds both architectures from one command.
  • Dual Transport: Streamable HTTP + SSE — compatible with any MCP client (new and legacy).
  • Bearer Auth: Mandatory token authentication — auto-generated on first run, required on every request to prevent unauthorized access.
  • Config Dialog: Change IP/port/token from the Plugins menu, auto-restarts the server on save.
  • Auto-Start: MCP server starts automatically when x64dbg launches.
  • Cross-Compile: Build Windows plugins from Linux, macOS, or WSL.

Install

Download the latest release or build from source:

  1. Copy the contents of dist/ into your x64dbg root folder (deploys both x32 and x64)
  2. Launch x64dbg

The MCP server starts automatically. Default ports:

  • x64: 0.0.0.0:9094
  • x32: 0.0.0.0:9095

Usage

Add to your MCP client config (.mcp.json, etc.):

Streamable HTTP (recommended):

{
  "mcpServers": {
    "x64dbg": {
      "type": "http",
      "url": "http://localhost:9094/",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN_HERE"
      }
    }
  }
}

SSE (legacy clients):

{
  "mcpServers": {
    "x64dbg": {
      "type": "sse",
      "url": "http://localhost:9094/sse",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN_HERE"
      }
    }
  }
}

If connecting from WSL or a remote machine, use the host's IP address and set the bind address to 0.0.0.0 in the config dialog.

Example — AI-assisted reverse engineering session:

You:    Load calc.exe and break at the entry point
AI: [calls LoadBinary, SetBreakpoint, run, WaitForPause]
        Loaded calc.exe, hit breakpoint at 0x7FF7A1234000 in calc.exe

You:    What are the current registers?
AI: [calls GetAllRegisters]
        RAX: 0x0, RCX: 0x7FF7A1234000, RDX: 0x1, ...

You:    Read 64 bytes at the current instruction pointer
AI: [calls ReadMemory]
        48 83 EC 28 E8 12 34 00 00 ...

You:    Step over the next 3 instructions and show me the stack
AI: [calls StepOver x3, GetCallStack]
        Stepped to 0x7FF7A1234010, call stack: ...

Tools

72 MCP tools covering the full x64dbg debugging workflow.

Always available

ToolDescription
GetDebugStateCurrent debugger state, PID, instruction pointer
LoadBinaryLoad an executable into the debugger
ExecuteDebuggerCommandRun any x64dbg command
ListCommandsByCategoryList available MCP tools
SearchForStringsSearch process memory for text
GetEventLogLast N debugger events (exceptions, breakpoints, DLL loads)
ClearEventLogClear the event log
EvalExpressionEvaluate any x64dbg expression (address, register, arithmetic)
AttachProcessAttach to a running process by PID
EchoEcho input back
WaitForEventLong-poll for debugger events (breakpoint, pause, resume, exception)

Requires active debug session

ToolDescription
GetCurrentAddressCurrent EIP/RIP with label and comment
DisassembleDisassemble N instructions at an address
DisassembleFunctionDisassemble an entire function by boundaries
ReadMemoryHex dump of process memory
WaitForPauseBlock until target pauses
runResume execution (F9)
StepIntoSingle-step into calls (F7)
StepOverStep over calls (F8)
StepOutRun until return (Ctrl+F9)
PauseDebugPause the target (F12)
StopDebugTerminate debug session
RestartDebugRestart debug session
SetBreakpointSet INT3 breakpoint at address/symbol
SetHardwareBreakpointSet hardware breakpoint (DR0-DR3, read/write/execute)
SetConditionalBreakpointSet breakpoint with condition expression and optional log
EnableBreakpointEnable a breakpoint at a given address
DisableBreakpointDisable a breakpoint without deleting it
ToggleBreakpointToggle a breakpoint between enabled and disabled
DeleteBreakpointRemove a breakpoint
DeleteAllBreakpointsRemove all breakpoints (normal, hardware, memory)
ResetHitCountReset a breakpoint's hit counter to zero
ListBreakpointsList all active breakpoints
GetAllRegistersDump all general-purpose registers
SetRegisterSet a CPU register value
GetCallStackCurrent thread call stack
GetThreadsList all threads with IDs and instruction pointers
SwitchThreadSwitch active thread context
SuspendThreadSuspend a thread by its thread ID
ResumeThreadResume a suspended thread
ListModulesList loaded modules with base addresses and sizes
GetMemoryMapMemory regions with addresses, sizes, and protection
GetDumpableRegionsList committed, readable memory regions
AllocateMemoryAllocate memory in the target process
FreeMemoryFree allocated memory in the target process
WriteMemToAddressPatch memory with hex bytes
RestorePatchesRestore all patches to original bytes
AssembleAssemble an instruction at an address
CommentOrLabelAtAddressAdd comment/label in disassembly
SetBookmarkSet a bookmark at an address
DeleteBookmarkDelete a bookmark
ListBookmarksList all bookmarks
GetImportsShow module import table
GetExportsShow module export table
SearchSymbolsSearch for symbols matching a pattern
ListSymbolsList exported symbols of a module
GetPatchesList all memory patches
FindPatternScan module memory for byte pattern with ?? wildcards
GetStringsExtract ASCII strings from a module's memory
GetReferencesFind CALL/JMP xrefs to a target address
GetFunctionsList analyzed functions with addresses and labels
AnalyzeModulePE structure analysis: sections, EP, image size
DetectOEPDetect Original Entry Point for packed executables
DumpMemorySave memory region to file on disk
DumpModuleDump an entire module to a file
RunToAddressRun until hitting a specific address
TraceIntoStep N instructions recording address + disassembly
FollowPointerDereference pointer chain N levels deep
WatchExpressionsEvaluate multiple expressions in one call
GetSEHChainWalk Structured Exception Handler chain (x32)
GetPEBRead Process Environment Block fields
GetArgumentsRead function arguments from stack/registers
SetMemoryBreakpointSet memory breakpoint (read/write/execute)
SetExceptionBreakpointConfigure exception breakpoint (break or ignore, first/second/all chance)
DeleteExceptionBreakpointDelete an exception breakpoint
AnalyzeCodeRun code analysis (function, module, or control flow)
TraceOverTrace N instructions stepping over calls
SetBreakpointCommandSet a command to execute when a breakpoint is hit
SetBreakpointFastResumeEnable/disable fast resume (auto-continue) on a breakpoint
SaveDatabaseSave the x64dbg database (.dd64/.dd32)

Configuration

Go to Plugins > x64dbg-MCP Server > Configure MCP Server... to change the bind address, port, and auth token.

  • 0.0.0.0 — listen on all interfaces (for WSL/remote access)
  • 127.0.0.1 — local-only access

Authentication

A Bearer token is auto-generated on first run and required on every request. The MCP server has full debugger control and can read/write process memory — all requests without a valid token receive 401 Unauthorized. Click Generate in the config dialog to rotate the token, or Copy to copy it to clipboard. Clients must include the token as an Authorization: Bearer <token> header.

Changes take effect immediately — the server auto-restarts on save. Config is persisted to mcp_config.json next to the x64dbg executable.

Building

Requires Zig 0.16-dev or later. Builds on Windows, WSL, Linux, or macOS.

zig build -Doptimize=ReleaseSafe --prefix dist

Output mirrors x64dbg's folder structure — copy the contents of dist/ into your x64dbg root to deploy both architectures at once:

dist/
├── x32/
│   └── plugins/
│       └── x64dbg-MCP-Server.dp32
└── x64/
    └── plugins/
        └── x64dbg-MCP-Server.dp64

Project Structure

├── build.zig                     # build config — x32 + x64 cross-compilation
├── build.zig.zon                 # package manifest
└── src/
    ├── main.zig                  # plugin entry point, menu, callbacks
    ├── core/
    │   ├── bridge.zig            # x64dbg SDK bindings (runtime-resolved)
    │   ├── config.zig            # Win32 config dialog and persistence
    │   └── mcp_server.zig        # HTTP server and JSON-RPC dispatch
    ├── mcp/
    │   ├── json.zig              # JSON writer and parser helpers
    │   └── tools.zig             # MCP tool definitions and handlers
    └── resources/
        └── icons.zig             # embedded PNG icon data

How It Works

The plugin loads into x64dbg at startup, resolves the debugger's API symbols at runtime from x64bridge.dll and x64dbg.dll, then spins up an HTTP server on a background thread. MCP clients connect over HTTP and send JSON-RPC requests to invoke tools — each tool maps directly to x64dbg SDK calls (breakpoints, memory reads, command execution, etc.).

No polling, no external processes — the plugin lives inside x64dbg's address space with direct access to the debugger API.


Disclaimer

This tool is intended for legitimate reverse engineering, malware analysis, security research, and educational purposes only. It provides full debugger control over running processes — including memory read/write, code execution, and process manipulation — over a network interface.

By using this software, you accept full responsibility for how it is used. The author is not liable for any misuse, damage, or legal consequences resulting from the use of this tool. Always ensure you have proper authorization before debugging or analyzing any software.

Do not expose the MCP server to untrusted networks. While Bearer token authentication is enforced, the server communicates over unencrypted HTTP.


License

MIT. See LICENSE.

Made with 🖤 by @duty1g

关于 About

x64dbg-MCP Server is a native MCP (Model Context Protocol) plugin for x64dbg that exposes the debugger's full functionality over HTTP. Connect any MCP-compatible AI assistant and control x64dbg programmatically: set breakpoints, step through code, read memory, dump registers, and more. Built with Zig — zero dependencies, single-binary output, cros
ai-agentsai-debuggingbinary-analysisclaudeclaude-codemalware-analysismalware-researchmalware-scannermcpmcp-servermcp-serversx64dbgx64dbg-mcpx64dbg-pluginx64dbg-toolsxdbgzigzig-langziglang

语言 Languages

Zig100.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
22
Total Commits
峰值: 17次/周
Less
More

核心贡献者 Contributors