Loading ...
用 AI 驱动 x64dbg:x64dbg-mcp 逆向调试实战指南

逆向工程遇上大语言模型,从崩溃分析到漏洞挖掘的效率将迎来质的飞跃。x64dbg-mcp 通过 MCP 协议将 x64dbg 的全部调试能力暴露给 AI,让 AI 像逆向工程师一样操控调试器。

一、前言

x64dbg 是 Windows 平台最流行的开源调试器,几乎每个安全从业者都用过。而随着大语言模型(LLM)的发展,”AI + 逆向工程”正在成为新的趋势。SetsunaYukiOvO/x64dbg-mcp 项目通过 MCP(Model Context Protocol)协议,将 x64dbg 的调试能力暴露给 AI 客户端,让 AI 可以像人一样操控调试器——设置断点、读内存、单步执行、分析函数,全都用自然语言完成。

本文将从安装配置、架构原理到实战场景,带你全面了解和使用这个插件。

二、什么是 x64dbg-mcp?

x64dbg-mcp 是一个 x64dbg/x32dbg 原生插件,它通过 MCP 协议将调试器的全部能力暴露给 AI 代理。插件以 .dp64 / .dp32 DLL 的形式加载到 x64dbg 中,内嵌一个 HTTP 服务器,通过 JSON-RPC 2.0 + SSE 协议与外部 AI 客户端通信。

通过它,AI 能够:

  • 控制调试执行(运行、暂停、单步)

  • 读写寄存器和内存

  • 管理断点(软件/硬件/内存断点)

  • 反汇编代码、分析函数

  • 解析符号、查看导入导出表

  • Dump 模块、检测壳、寻找 OEP

  • 执行 x64dbg 脚本命令

三、安装与配置

3.1 前置条件

  • Windows 10/11(x64)

  • x64dbg(build 2023+)

  • Claude Code CLI(配置好环境)

3.2 安装插件

方式一:下载预编译文件(推荐)

  1. 前往 Releases 页面 下载最新版本的 x64dbg_mcp.dp64

  2. 将文件复制到 x64dbg 的插件目录:

copy x64dbg_mcp.dp64 <x64dbg-path>\release\x64\plugins\

方式二:从源码编译

需要 Visual Studio 2022、CMake 3.15+、vcpkg:

git clone https://github.com/SetsunaYukiOvO/x64dbg-mcp.git
cd x64dbg-mcp
.\build.bat

编译产物在 dist/ 目录,复制到插件目录即可。

3.3 验证安装

  1. 打开 x64dbg

  2. 菜单栏出现 Plugins → MCP Server,说明插件加载成功

  3. 点击 Plugins → MCP Server → Start MCP HTTP Server 启动服务

  4. 服务器默认监听 http://127.0.0.1:3000

3.4 连接 Claude Code

编辑配置文件 ~/.claude.json,在 mcpServers 节点中追加以下配置:

{
  "mcpServers": {
    "x64Dbg": {
      "type": "http",
      "url": "http://127.0.0.1:3000"
    }
  }
}

重启 Claude Code,MCP 即可自动完成连接。

3.5 配置选项

插件首次加载时会自动在插件目录下生成 x64dbg-mcp/config.json

配置项 默认值 说明
server.address 127.0.0.1 服务监听地址
server.port 3000 服务监听端口
permissions.allow_memory_write true 允许 AI 写入内存
permissions.allow_register_write true 允许 AI 写入寄存器
permissions.allow_script_execution true 允许 AI 执行脚本
permissions.allowed_methods 14 个通配符 允许调用的方法白名单
features.auto_start_mcp_on_plugin_load true 插件加载时自动启动服务
features.enable_heartbeat true 启用心跳检测
timeout.request_timeout_ms 30000 请求超时时间

提示:也可以通过 Plugins → MCP Server → Edit Config 打开 GUI 配置编辑器修改配置。

四、架构原理

插件采用清晰的四层架构:

┌───────────────────────────────────────────────────┐
│                 AI 客户端 (Claude Code)              │
└─────────────────────┬─────────────────────────────┘
                      │ SSE / HTTP (JSON-RPC 2.0)
                      ▼
┌───────────────────────────────────────────────────┐
│              通信层 (Communication)                  │
│         MCPHttpServer · ConnectionManager           │
│         HeartbeatMonitor · MessageTransport         │
├───────────────────────────────────────────────────┤
│              协议层 (Protocol)                       │
│    MethodDispatcher · MCPToolRegistry (79 工具)      │
│    PermissionChecker · ConfigManager                │
├───────────────────────────────────────────────────┤
│              业务层 (Business)                       │
│   DebugController · RegisterManager                 │
│   MemoryManager · BreakpointManager                 │
│   DisassemblyEngine · SymbolResolver                │
│   StackManager · ThreadManager · DumpManager        │
├───────────────────────────────────────────────────┤
│              插件层 (Plugin)                         │
│         x64dbg Plugin SDK · 事件回调                 │
└───────────────────────────────────────────────────┘

关键设计:

  • 地址解析统一:所有地址参数都支持符号名(如 kernel32.CreateFileW)、寄存器名(如 RIP)和 x64dbg 表达式

  • 双架构支持:通过条件编译同时支持 x64 和 x86 调试器

  • 权限白名单:通过通配符模式控制方法调用权限,默认开放 14 类方法

  • 通信端点POST /rpc(JSON-RPC 请求)、GET /sse(事件流)、GET /(状态检查)

五、AI 可以操控 x64dbg 做什么?

插件通过 MCP 协议暴露了 79 个工具7+8 个资源10 个提示词模板

5.1 调试控制

工具 功能
debug_init 启动新的调试会话
debug_run 继续执行
debug_pause 暂停执行
debug_step_into 单步进入
debug_step_over 单步越过
debug_step_out 单步跳出函数
debug_run_to 运行到指定地址
debug_restart 重启调试会话
debug_stop 停止调试
debug_get_state 获取当前调试状态

5.2 寄存器操作

工具 功能
register_get 读取单个寄存器
register_set 写入寄存器值
register_list 列出所有寄存器
register_get_batch 批量读取寄存器(含 GPR、SSE、AVX)

5.3 内存操作

工具 功能
memory_read 读取内存区域
memory_write 写入内存区域
memory_search 搜索内存模式(支持 hex 格式)
memory_get_info 获取内存区域信息
memory_enumerate 列出所有内存区域
memory_allocate 分配内存
memory_free 释放内存

5.4 断点管理

工具 功能
breakpoint_set 设置断点(软件/硬件/内存)
breakpoint_delete 删除断点
breakpoint_enable/disable 启用/禁用断点
breakpoint_list 列出所有断点
breakpoint_set_condition 设置条件断点
breakpoint_set_log 设置日志断点
breakpoint_reset_hitcount 重置命中计数

5.5 反汇编与分析

工具 功能
disassembly_at 反汇编指定地址
disassembly_range 反汇编地址范围
disassembly_function 反汇编整个函数
symbol_resolve 符号解析为地址
symbol_from_address 地址获取符号
module_get_exports 获取导出表
module_get_imports 获取导入表
xref_get 交叉引用分析

5.6 Dump 与脱壳

工具 功能
dump_module Dump 可执行模块(PE 重建)
dump_analyze_module 加壳检测与分析
dump_detect_oep OEP 检测
dump_memory_region Dump 任意内存区域

5.7 其他工具

分类 工具
栈操作 stack_get_tracestack_read_framestack_get_pointers
线程操作 thread_listthread_switchthread_suspendthread_resume
脚本执行 script_executescript_execute_batch
上下文快照 context_get_snapshotcontext_compare_snapshots
补丁管理 patch_listpatch_restore
汇编器 assembler_assemble

六、实战场景

6.1 场景一:崩溃分析

当程序崩溃时,直接让 AI 帮你分析崩溃原因:

使用 x64Dbg MCP:”程序在地址 0x401234 处发生了访问违例,帮我分析崩溃原因”

AI 会自动:读取当前寄存器状态、获取调用栈、反汇编崩溃点附近的代码、检查内存访问的合法性,给出崩溃根因和修复建议。

6.2 场景二:自动化脱壳

使用 x64Dbg MCP:”这个程序用了 UPX 壳,帮我自动脱壳”

AI 会调用 dump_analyze_module 确认壳类型,dump_detect_oep 寻找 OEP,然后单步执行到 OEP,最后 dump_module 转储脱壳后的程序。

6.3 场景三:CTF 逆向

使用 x64Dbg MCP:”帮我在 check_serial 函数设置断点,分析注册码验证逻辑”

AI 调用 symbol_resolve 解析函数地址,breakpoint_set 设置断点,命中后读取参数和返回值,disassembly_function 反汇编完整函数,最终还原验证算法。

6.4 场景四:直接逆向

使用 x64Dbg MCP:”帮我把这个程序逆过来”

AI 会自动分析程序结构:识别主函数和关键逻辑、反汇编核心代码段、读取内存中的关键数据、追踪函数调用关系,最终给出完整的逆向分析结果和伪代码。

6.5 场景五:动态调试

使用 x64Dbg MCP:”帮我在 CreateFileW 下断点,监控程序打开的所有文件”

AI 调用 breakpoint_setkernel32.CreateFileW 设置断点,每次命中时读取参数(文件路径、访问模式),记录所有文件操作,帮助你快速掌握程序的行为逻辑。

七、总结

x64dbg-mcp 的推出,让 x64dbg 正式迈入 AI 辅助逆向工程的时代。79 个调试工具、10 个结构化工作流提示词,覆盖了从崩溃分析、漏洞挖掘到脱壳逆向的完整场景。对于安全研究人员、恶意软件分析师和 CTF 选手而言,它极大地降低了 AI 与调试器交互的门槛——安装一个插件,配一行 JSON,开始你的 AI 驱动逆向之旅。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
改为 -->