HyperDbg/mcp

GitHub: HyperDbg/mcp

将硬件辅助的 ring-0 调试器 HyperDbg 通过 MCP 协议暴露给 LLM 智能体,实现 AI 驱动的内核级调试能力调用。

Stars: 3 | Forks: 1

# hyperdbg-mcp 一个将 [HyperDbg](https://hyperdbg.org) —— 硬件辅助的 ring-0 调试器 —— 暴露给 LLM 智能体的 [MCP](https://modelcontextprotocol.io) 服务端。 ## 工作原理 该服务端通过 `ctypes` 加载 `libhyperdbg.dll`(没有 HTTP API),并注册了一组映射到 HyperDbg 命令面的 MCP 工具。命令的文本输出通过 HyperDbg 的消息回调进行捕获(参见 [`docs/DESIGN.md`](docs/DESIGN.md) §2)。 ``` MCP client ──stdio──► hyperdbg-mcp (Python) ──ctypes──► libhyperdbg.dll ──► driver + VMM ``` ## 安全性 HyperDbg 在 ring-0 运行;一次错误的写入可能导致主机蓝屏,并且**从目标读取的内存/反汇编数据可能是恶意的(你可能正在调试恶意软件)**。因此,该服务端: - 标注了只读工具与破坏性工具(`ToolAnnotations`); - 对破坏性工具要求每次调用都进行**确认**(MCP elicitation); - 支持严格的 **`--read-only`** 模式,该模式完全不注册写入/脚本工具; - 将所有来自被调试者的数据包装在 **untrusted-data envelope** 中,因此会被视为无害数据; - 记录每次调用的**仅追加审计日志**。 ``` # 只读,最安全 hyperdbg-mcp --read-only # 完全访问(破坏性工具受确认机制限制) hyperdbg-mcp --lib-path C:\path\to\libhyperdbg.dll --audit-log audit.jsonl # mock backend - 无需 HyperDbg / DLL 即可体验完整的工具接口 hyperdbg-mcp --mock # Debugger Mode - 通过 serial 连接到远程 debuggee(连接时使其暂停) hyperdbg-mcp --remote-com com4 --baudrate 115200 ``` **模式。** 默认是 **local VMI**(单机,通过本地 hypervisor 调试)。 **Debugger Mode**(`--remote-com` / `--remote-pipe` / `--remote-net`)连接到单独的被调试机,并且默认在连接时将其暂停——这样才能为寄存器/内存读取和单步执行提供有效的 CPU 上下文。(在 local VMI 模式下,如果没有暂停任何进程,读取寄存器是没有意义的。) ## 工具 **读取(始终可用):** `hd_mem_read`, `hd_reg_read_all`, `hd_reg_read`, `hd_eval`, `hd_disasm`, `hd_list_modules`, `hd_status`。 **执行控制(在 `--read-only` 下可用):** `hd_exec_continue`, `hd_exec_pause`, `hd_exec_step`。 **目标修改(仅限完整模式,需确认):** `hd_exec_command`, `hd_bp_set`, `hd_mem_write`, `hd_reg_write`, `hd_script_run`。 ## 开发 ``` pip install -e ".[dev]" pytest ruff check . ``` ## 路线图 - 在运行中的 HyperDbg 主机上验证 FFI。 - 可流式传输的 HTTP 传输 + 针对长耗时 Intel-PT / LBR 追踪的进度流式传输。 - 感知符号的辅助工具;更丰富的结构化输出。 ## 许可证 GPL-3.0-or-later,与 HyperDbg 项目保持一致。
标签:Findomain, LLM Agent, MCP, Python, 大模型, 安全规则引擎, 无后门, 逆向工具