
Injected x64 Windows DLL + MCP bridge exposing a Cheat-Engine-style live memory debugger as Claude / LLM tools: typed hex view, first/next value scans, AOB, pointer/string scans, reverse pointer...
概览
注入到任意 64 位 Windows 进程的通用运行时调试工具。DLL 在目标进程内启动一个 TCP 服务(绑定 0.0.0.0:37651,同机或远端均可连),通过一个 tab-separated line 协议对外暴露 Cheat Engine 风格的调试能力;MCP 桥则把这些能力转成 50 个 Claude tools。 设计原则: - :DLL / MCP 都不依赖任何特定游戏结构。 - :扫描会话、snapshot、watcher、structure 定义在 DLL 里常驻,MCP 调用不会在中途重建。 - :每次请求一行 tab 分隔的文本,响应一个 JSON envelope {ok, command, text}。 依赖:MinGW-w64(brew install mingw-w64)+ CMake ≥ 3.24。 在 Windows 本地直接用 MSVC 也可以;CMakeLists 在 MSVC 下会启用 /W4 /permissive- /utf-8。 1. 把 inspector.dll 注入目标进程(手动注入器 / DLL injector / LoadLibrary 均可)。 2. DllMain → DLL_PROCESS_ATTACH 会: - 调 AllocConsole() 拉一个控制台窗口用于日志; - 绑定 0.0.0.0:37651 + 启动 accept 线程; - 启动 20 Hz 的 watcher 轮询线程。 3. 控制台里看到: 4. 卸载时 DLL_PROCESS_DETACH 会停 accept 线程 + watcher 线程并释放 socket。 远程联通:DLL 是 bind(INADDR_ANY, 37651),如果 MCP 和游戏不在同一台机器,把 端口穿透出来(或走 SSH 转发 / 内网直连)即可。 - 名称 inspector 决定了 Claude 里看到的工具前缀: mcp__inspector_process_info 等。 - INSPECTOR_HOST / INSPECTOR_PORT 可选;默认 127.0.0.1:37651。 - 远程机器把 INSPECTOR_HOST 改成游戏机的 IP 即可。
README
以下为原文 README 节选,完整内容请查看原文。
inspector
注入到任意 64 位 Windows 进程的通用运行时调试工具。DLL 在目标进程内启动一个
TCP 服务(绑定 0.0.0.0:37651,同机或远端均可连),通过一个 tab-separated line
协议对外暴露 Cheat Engine 风格的调试能力;MCP 桥则把这些能力转成 50 个
Claude tools。
1. 概述
| 层 | 位置 | 职责 |
|---|---|---|
inspector.dll |
inspector/dll/ |
在目标进程内执行所有内存 / 扫描 / 反汇编 / 结构操作,暴露 TCP 37651 |
server.py |
inspector/mcp/ |
MCP stdio 桥,把 JSON-RPC 的 tools/call 翻译成 TCP 命令 |
| Zydis | inspector/dll/thirdparty/ |
静态内嵌的 x86-64 反汇编器 |
| 参考 | reference/cheat-engine/ |
CE 源码本地副本,仅作语义对照,不参与构建 |
设计原则:
- 零项目耦合:DLL / MCP 都不依赖任何特定游戏结构。
- 有状态:扫描会话、snapshot、watcher、structure 定义在 DLL 里常驻,MCP 调用不会在中途重建。
- 协议极简:每次请求一行 tab 分隔的文本,响应一个 JSON envelope
{ok, command, text}。
2. 目录结构
inspector/
├── README.md # 本文
├── dll/
│ ├── CMakeLists.txt
│ ├── toolchain-mingw-w64.cmake
│ ├── include/inspector/
│ │ ├── types.hpp # u8..f64 基础类型
│ │ ├── formatting.hpp # 解析 / hex / JSON 小工具
│ │ ├── memory_view.hpp # SEH 保护的本地内存读
│ │ ├── service_util.hpp # 区域枚举 / PE 解析
│ │ ├── service.hpp # Service 公共 API
│ │ └── server.hpp
│ ├── src/
│ │ ├── dllmain.cpp / server.cpp
│ │ ├── service.cpp # 分发 + watcher 线程
│ │ ├── service_memory.cpp # 内存读写 / patch / hexview / pointer_chain
│ │ ├── service_scan.cpp # 所有 scan_* / find_code_refs / pointer_path
│ │ ├── service_snapshot.cpp # snapshot_*
│ │ ├── service_watch.cpp # watch_* + event 队列
│ │ ├── service_dissect.cpp # dissect / compare / compare_many / infer
│ │ ├── service_struct.cpp # CE structure 会话
│ │ ├── service_module.cpp # modules / module_info / resolve_symbol
│ │ ├── service_disasm.cpp # Zydis 反汇编
│ │ └── service_thread.cpp # thread_list / thread_context
│ └── thirdparty/zydis/
└── mcp/
└── server.py
3. 编译
依赖:MinGW-w64(brew install mingw-w64)+ CMake ≥ 3.24。
cd inspector/dll
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw-w64.cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --parallel
# 产物: build/inspector.dll (约 15 MB,静态链接 Zydis/Zycore/libstdc++)
在 Windows 本地直接用 MSVC 也可以;CMakeLists 在 MSVC 下会启用
/W4 /permissive- /utf-8。
4. 注入与启动
-
把
inspector.dll注入目标进程(手动注入器 / DLL injector / LoadLibrary 均可)。 -
DllMain→DLL_PROCESS_ATTACH会:- 调
AllocConsole()拉一个控制台窗口用于日志; - 绑定
0.0.0.0:37651+ 启动 accept 线程; - 启动 20 Hz 的 watcher 轮询线程。
- 调
-
控制台里看到:
inspector (generic memory / CE-style debug) pid = ... host module = 0x00007FF7... wire port = 0.0.0.0:37651 [inspector] server started
安装
This server does not publish a one-line install command.
Open the repository installation guide 新手?先看 mcpskill.org 教程 →配置
{
"mcpServers": {
"inspector": {
"command": "python3",
"args": [
"/绝对路径/inspector/mcp/server.py"
],
"env": {
"INSPECTOR_HOST": "127.0.0.1",
"INSPECTOR_PORT": "37651"
}
}
}
}