使用说明
Fatmike的MCP调试器服务器
介绍
这个项目是自制的,轻量级的 MCP调试器服务器 为学习和实验而开发。这 MCP调试器服务器 将调试器功能作为MCP工具公开,使外部MCP客户端能够通过干净的接口控制执行、检查内存和分析被调试对象。
调试器是用c++编写的,从头开始实现核心调试功能,而不依赖于现有的调试器框架。对于指令解码 Zydis 使用拆卸器。调试器与用c#编写的MCP服务器集成在一起,使用 官方MCP C#SDK.
关键词:
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工具公开给外部客户端。