Token导航 LogoToken导航TokenDH.com
Donx64mcp Dbg logo
AI代理stdio官方级别未说明来源级核验

Donx64mcp Dbg

MCP Server

一款强大的进程内调试工具包,允许AI代理实时调试和检查任何Windows x64进程,适用于安全研究、逆向工程和CTF挑战。

工具数

41

提示词数

0

GitHub Stars

1

资源数

0
Claude逆向工程AI代理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

d0nk3yhm

提供方

d0nk3yhm

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install pywin32 mcp

详细介绍

donx64mcp dbg

一个强大的进程内调试工具包,允许AI代理(Claude、Codex)进行调试和检查 任何 Windows x64进程实时运行。注入一个DLL,通过一个命名管道获取40多个调试命令,并通过MCP工具对其进行控制。

专为授权安全研究、逆向工程和CTF挑战而设计。

特性

  • 记忆 --读、写、分配、填充、指针链解引用
  • 反汇编 --Zydis供电指令和功能拆卸
  • 图案扫描 --IDA风格的带通配符的字节模式,字符串提取
  • 断点 --INT3软件断点,带有点击计数、注册上下文、等待点击
  • api钩子 --基于MinHook的函数挂钩,带参数+返回值记录
  • 模块检查 --枚举加载的模块、导出、导入、PE部分
  • 线程控制 --列表、挂起、恢复、获取/设置寄存器、调用堆栈
  • 堆行走 --枚举堆和遍历分配
  • 防反调试 --3层隐形引擎(18个钩子)击败常见的调试器检测
  • 隐形注射 --手动映射模式(无PEB条目,PE标题已擦除)

______________________________________________________________________

快速安装

先决条件

  • Windows 10/11 x64
  • Visual Studio 2022 (社区、专业或企业) “用C++进行桌面开发” 工作量
  • Python 3.10+ 使用pip在PATH上

一个命令安装


git clone https://github.com/d0nk3yhm/donx64mcp-dbg.git
cd donx64mcp-dbg
install.bat

安装脚本将:

  1. 构建 mcp_debugger.dllmcp_inject.exe 来源
  2. 安装Python依赖项(pywin32, mcp SDK)
  3. 注册MCP服务器 全球范围内 与克劳德代码(写信给 ~/.claude/settings.json)

安装后 dbg_* 工具可在 Claude代码会话——不需要每个项目的配置。

手动构建

如果您更喜欢手动构建或使用Visual Studio IDE:

:: Option A: Command-line build
build_all.bat

:: Option B: Open in Visual Studio
:: Open mcp_debugger.sln, set to Release|x64, build solution

:: Install Python deps
pip install pywin32 mcp

______________________________________________________________________

使用Claude代码进行设置

自动(通过install.bat)

安装程序使用全局注册MCP服务器 claude mcp add.安装后,重新启动Claude Code和 dbg_* 工具将在任何项目中可用。

手册(CLI)

claude mcp add donx64mcp-dbg -s user -- python "C:/path/to/donx64mcp-dbg/bridge/mcp_debugger_server.py"

-s user flag在全球范围内注册 ~/.claude/settings.json 因此,它可以在任何项目目录下工作。

手册(配置文件)

添加 %USERPROFILE%\.claude\settings.json (创建 mcpServers 如果不存在,则使用key):

{
  "mcpServers": {
    "donx64mcp-dbg": {
      "command": "python",
      "args": ["C:/path/to/donx64mcp-dbg/bridge/mcp_debugger_server.py"]
    }
  }
}

仅针对每个项目(可选)

如果只希望调试器在特定项目中可用,请添加 .mcp.json 在项目根目录中:

{
  "mcpServers": {
    "donx64mcp-dbg": {
      "command": "python",
      "args": ["C:/path/to/donx64mcp-dbg/bridge/mcp_debugger_server.py"]
    }
  }
}

使用Codex进行设置

添加到您的Codex MCP配置中:

{
  "mcpServers": {
    "donx64mcp-dbg": {
      "command": "python",
      "args": ["C:/path/to/donx64mcp-dbg/bridge/mcp_debugger_server.py"]
    }
  }
}

______________________________________________________________________

运作原理

Claude / Codex
      |
      | MCP protocol (stdio)
      v
mcp_debugger_server.py        mcp_inject.exe
   (Python MCP bridge)          (injector)
      |                             |
      |  Named Pipe                 |  DLL injection
      |  \\.\pipe\mcp_dbg_
    |  (LoadLibrary / Manual Map)
      v                             v
               mcp_debugger.dll
             (inside target process)
  1. 你打 dbg_attach("target.exe") 来自克劳德/Codex
  2. Python桥找到进程,运行 mcp_inject.exe 注入DLL
  3. DLL在目标进程内启动一个命名管道服务器
  4. 这座桥连接到管道上,并将所有 dbg_* 命令
  5. 命令在进程内执行并返回JSON结果
组件路径描述
mcp_debugger.dlldll/核心DLL注入目标进程
mcp_inject.exeinjector/具有LoadLibrary+手动映射模式的CLI注入器
mcp_debugger_server.pybridge/Python MCP桥将DLL命令作为MCP工具公开

______________________________________________________________________

用法

注册MCP服务器后,从Claude或Codex使用它:

1. dbg_attach("target.exe")      ` |以十六进制字符串读取内存(最大1 MB)|
| `WRITE  ` |将十六进制字节写入内存|
| `READPTR  [depth]` |解引用指针链|
| `PROTECT ` |查询内存保护标志|
| `ALLOC ` |在目标中分配RWX内存|
| `FREE ` |释放分配的内存|
| `FILL   ` |用字节填充内存区域|

### 拆卸(Zydis)

|命令|描述|
|---------|-------------|
| `DISASM  [count]` |拆卸说明(默认10,最多500)|
| `DISASM_FUNC ` |拆卸整个功能,直到RET|

### 图案扫描

|命令|描述|
|---------|-------------|
| `SCAN   
` |查找第一个模式匹配(IDA样式通配符)|
| `SCAN_ALL   
` |查找所有匹配的图案|
| `STRINGS   [minlen]` |从内存中提取ASCII字符串|

### 断点

|命令|描述|
|---------|-------------|
| `BP_SET ` |设置软件断点(INT3)|
| `BP_LIST` |列出所有断点和点击次数|
| `BP_DEL ` |删除断点|
| `BP_DEL_ALL` |删除所有断点|
| `BP_CTX ` |从上次点击中获取注册上下文|
| `BP_WAIT  [timeout_ms]` |阻塞直到到达断点|

### 模块检查

|命令|描述|
|---------|-------------|
| `MODULES` |列出所有已加载的模块及其基础/大小|
| `EXPORTS ` |列出模块的导出|
| `IMPORTS ` |列出模块的导入|
| `SECTIONS ` |列出模块的PE部分|

### API钩挂(MinHook)

|命令|描述|
|---------|-------------|
| `HOOK  [name]` |挂接函数并记录调用|
| `UNHOOK ` |取下挂钩|
| `HOOK_LIST` |列出活动挂钩|
| `HOOK_LOG  [count]` |查看钩子调用日志|

### 线程控制

|命令|描述|
|---------|-------------|
| `THREADS` |列出所有线程|
| `THREAD_CTX ` |获取一个线程的所有寄存器|
| `THREAD_SET   ` |设置寄存器值|
| `THREAD_SUSPEND ` |暂停线程|
| `THREAD_RESUME ` |恢复挂起的线程|
| `CALLSTACK ` |获取调用堆栈|

### 堆检查

|命令|描述|
|---------|-------------|
| `HEAPS` |列出所有进程堆|
| `HEAP_WALK ` |步行堆入口|

### 隐形/反调试

|命令|描述|
|---------|-------------|
| `STEALTH_ON ` |激活隐身(1=基本,2=满,3=最大)|
| `STEALTH_OFF` |停用所有隐形保护|
| `STEALTH_STATUS` |显示当前隐形状态和钩数|
| `STEALTH_PATCH_PEB` |手动修补PEB调试标志|

______________________________________________________________________

## 反调试引擎

三层保护旁路 `STEALTH_ON `:

**第1级(基础):** PEB修补(BeingDebugged、NtGlobalFlag、堆标志)、ETW禁用、挂钩打开 `IsDebuggerPresent`, `CheckRemoteDebuggerPresent`, `NtQueryInformationProcess`, `NtClose`.

**第2级(完整,包括第1级):** 调试寄存器清理(`NtGetContextThread`, `NtSetContextThread`, `NtContinue`),定时挂钩(`QueryPerformanceCounter`, `GetTickCount`, `GetTickCount64`),线钩(`NtSetInformationThread`, `NtCreateThreadEx`),窗口/进程过滤(`FindWindowA/W`, `EnumWindows`),ntdll挂钩(`NtQueryObject`, `NtQuerySystemInformation`).

**第3级(最多,包括第2级):** 仪器回调终止(`NtSetInformationProcess` 40级区块)。

最高水平时的总钩数: **18**.

______________________________________________________________________

## 源布局

donx64mcp-dbg/ ├── dll/ # DLL source code │ ├── mcp_debugger.cpp # Entry point, pipe server │ ├── commands.cpp/h # Command dispatcher │ ├── memory_ops.cpp/h # Memory read/write/alloc │ ├── breakpoints.cpp/h # INT3 breakpoints + VEH │ ├── disasm.cpp/h # Zydis disassembly │ ├── threads.cpp/h # Thread enumeration/control │ ├── modules.cpp/h # Module/export/import/section info │ ├── hooks.cpp/h # MinHook API hooking │ ├── scanner.cpp/h # Pattern scanning + strings │ ├── heap.cpp/h # Heap walking │ ├── anti_debug.cpp/h # Anti-anti-debug engine │ ├── globals.h # Global state │ ├── response.h # JSON response helpers │ ├── lib/minhook/ # MinHook (vendored) │ └── lib/zydis/ # Zydis disassembler (vendored) ├── injector/ # Injector source │ └── mcp_inject.cpp # LoadLibrary + manual map injector ├── bridge/ # Python MCP bridge │ └── mcp_debugger_server.py # MCP server (all dbg_* tools) ├── scripts/ # Utility scripts │ └── quick_test.py # Pipe connectivity test ├── build_all.bat # Build DLL + injector ├── install.bat # Build + install + register ├── mcp_debugger.sln # Visual Studio solution └── .mcp.json # MCP server config (project-local)


______________________________________________________________________

## 命名管道协议

注入后,DLL在以下位置创建一个命名管道 `\\.\pipe\mcp_dbg_
`.

- **格式:** 发送UTF-8命令字符串,接收JSON响应
- **模式:** 消息模式管道
- **缓冲器:** 64 KB

______________________________________________________________________

## 手动地图技术细节

手动映射器(`--mm` flag)执行隐形注射:

1. 从磁盘读取PE并验证(x64 DLL检查)
1. 在目标中分配内存(首选原始ImageBase)
1. 具有正确RVA偏移的地图剖面
1. 进程库重定位(IMAGE_REL_BASED_DIR64)
1. 预加载非系统依赖项(例如。 `dbghelp.dll`)通过LoadLibrary
1. 使用远程基础增量解决导入问题
1. 写入映射图像并设置每段内存保护
1. 呼叫已导出 `ManualMapInit` 通过 `CreateRemoteThread`
1. 擦除PE标头(前0x1000字节为零)

DLL使用静态CRT(`/MT`). `ManualMapInit` 电话 `_CRT_INIT()` 在启动管道服务器之前引导C运行时,因为 `_DllMainCRTStartup` 无法从手动映射的上下文调用。

______________________________________________________________________

## 许可证

[麻省理工学院](LICENSE)

## 作者

2026年3月

目录标签

目录标签

Claude逆向工程AI代理C本地部署进程调试安全研究内存操作API钩子

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

41

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP