Fatmike的MCP调试器服务器
介绍
这个项目是自制的,轻量级的 MCP调试器服务器 为学习和实验而开发。这 MCP调试器服务器 将调试器功能作为MCP工具公开,使外部MCP客户端能够通过干净的接口控制执行、检查内存和分析被调试对象。
关键词:\ MCP服务器、调试器、反汇编程序、静态分析、动态分析、调试、AI、EXE、可执行文件、Windows
演示
*双子星命令行工具* 在演示中用作MCP客户端
快速入门:设置MCP。VS代码中的Server.exe
本指南提供了构建和集成 MCP。服务端 进入Visual Studio代码 视窗.
步骤1:构建解决方案
在配置VS Code之前,您必须编译mcp服务器:
- 打开
MCPDebugger.sln在Visual Studio中。 - 构建解决方案
- 确认
MCP.Server.exe存在于你的\build\Release\x86或\build\Release\x64子文件夹。
步骤2:安装所需的VS代码扩展
确保以下扩展已安装并在VS Code中处于活动状态:
- GitHub Copilot
- GitHub Copilot 聊天助手
步骤3:添加MCP服务器
- 按
Ctrl+Shift+P打开命令面板。 - 类型
>并选择 “添加MCP服务器”. - 选择
command(stdio) 作为服务器类型。
步骤4:配置路径
输入完整路径 MCP.Server.exe 您在步骤1中构建了。
\[!小心\] 仅 一 架构(x86或x64)应该一次作为MCP服务器处于活动状态。如果切换架构,请先删除之前的服务器条目。
| 架构 | 输入路径示例 |
|---|---|
| Windows x64 | C:\YourProject\bin\x64\MCP.Server.exe |
| Windows x86 | C:\YourProject\bin\x86\MCP.Server.exe |
步骤5:最终确定并使用
- 命名服务器: 输入MCP服务器的名称,然后按 进入.
- 验证: 打开 副驾驶聊天 (
Ctrl+Alt+I),切换到 代理模式,然后单击 工具 偶像。现在,您的MCP工具应该已经列出并准备好使用。MCP工具可以在此处启用/禁用。
VS代码截图
VS代码:安装了扩展和MCP服务器的工具栏
VS代码:副驾驶聊天窗口
模型建议
对于使用此MCP调试器的复杂调试和逆向工程任务, 克劳德作品4.5 截至目前为止,取得了最好的成绩 2025年11月它始终如一地处理大型执行跟踪、详细的拆卸和多步骤推理,比其他测试模型更可靠。
ChatGPT 4.1 和 双子座2.5 Pro 足够用于更简单的分析场景,如基本步进、指令检查和直接的控制流推理。这些模型在提供的示例中表现良好 Example_x64 和 Example_x86 文件夹,但在处理更复杂或长时间运行的调试会话时显示出局限性。
模型性能可能会随着时间而变化,但上述情况反映了测试时观察到的行为。
免责声明
通过MCP进行调试可能会导致 代币使用率高,成本增加.AI交互是无状态的,这意味着所有相关的调试上下文(寄存器、内存、反汇编、模块等)必须在每次请求时重复传输。
频繁停止执行并返回详细状态的操作(如步进和临时断点)会显著增加令牌消耗。
如果 需要低成本运营,强烈建议专注于静态分析并禁用以下MCP工具:
- 调试器_继续到断点
- 调试器_继续到API断点
- 调试器_步骤
- 调试器_步骤
禁用这些工具可以减少重复的状态传输量,并有助于控制令牌的使用。
例子
存储库包括示例项目,以帮助开始静态分析和调试,位于以下文件夹中:
- 示例_x64 和 示例_x86\
这 Example_x64 和 Example_x86 项目提供了一个简单的控制台应用程序,用作入门调试目标。应用程序在运行时提示用户输入密码。两个示例的正确密码都是 *秘密*.
- MCP_调试_会话\
包含利用动态分析和调试的更复杂调试会话的文件夹。在这些会议中 克劳德作品4.5 被使用。目标可以下载 在这里。 请注意,目标是使用 UPX -d 在使用MCP调试器之前。
MCP工具
MCP服务器提供以下工具与调试器交互:
调试器生命周期
- 调试器_启动\
启动指定可执行文件的调试器,并在初始系统断点处中断。
- 调试器_停止\
停止调试器并终止被调试进程。
执行控制
- 调试器_继续\
当被调试对象在断点处停止时继续执行。
- 调试器_继续进入入口点\
从系统断点到程序入口点继续执行。
- 调试器_继续到断点\
继续执行,直到到达指定虚拟地址处的临时断点。
- 调试器_继续到API断点\
继续执行,直到达到指定API函数上的临时断点为止。
- 调试器_步骤\
进入下一条指令,输入函数调用。
- 调试器_步骤\
跳过函数调用,继续执行下一条指令。
代码和内存检查
- 调试器_拆卸\
在给定的虚拟地址处反汇编内存,并返回包含符号信息的指令。
- 调试器_TryResolveString\
尝试从被调试对象的内存中解析和读取字符串。
- 调试器_读取内存\
从被调试进程读取原始内存字节。
- 调试器_写入内存\
将任意字节写入被调试对象的内存。
模块检查
- 调试器_集合模块\
返回被调试进程当前加载的模块列表。
- 调试器_GetModuleImports\
返回指定模块的导入函数。
- 调试器_GetModuleExports\
返回指定模块的导出函数。
- 调试器_集合模块部分\
返回指定模块的节信息。
公用事业
- 调试器_HexToDecConverter\
将十六进制值转换为十进制,以避免数字转换错误。
解决方案概述
Visual Studio解决方案分为以下项目:
- MCP。调试器\
用C++实现的核心调试器。它包括一个C++/CLI桥,用于公开的托管接口。NET客户端。
- MCP。调试器。测试员\
一个简单的WinForms应用程序,用于通过托管测试调试器。NET接口。
- MCP。调试器。类型\
一个类型程序集,为调试器和之间的托管本机转换定义共享结构和数据类型。NET客户端。
- MCP。服务器\
C#MCP服务器,将调试器功能作为MCP工具公开给外部客户端。
