工欲善其事,必先利其器。在大语言模型(LLM)快速发展的今天,从 ChatGPT 到 AutoGPT,再到 Agent、MCP 与 Skill,AI 工具生态已极大提升了生产效率,并在众多 CTF 竞赛中展现了其强大潜力。本文将介绍如何利用模型上下文协议(MCP),为常用的逆向工程软件集成 AI 能力,从而辅助分析工作。
Part I:AI 与 MCP 基础
何为 AI?
从本质上看,AI 模型可以理解为一个复杂的数学函数(这是一种非常简化的理解)。

其中,x 可以是一个向量(而不仅仅是一个数字),n 则可以理解为模型参数的数量。通过大量的样本训练,我们就能确定数列 {a_i} 的值,从而在输入 x 后直接根据公式得到输出结果。
我们常听说的大语言模型有多少多少“参数”,指的就是有多少个 a。例如,DeepSeek R1 满血版就拥有 6710 亿(671 Billion)个参数。
模型上下文协议(MCP)
模型上下文协议(Model Context Protocol,MCP)由 Anthropic 于 2024 年 11 月底推出,是一种旨在统一大模型与外部数据源、工具之间通信的开放标准。有了 MCP,即使模型本身不支持 Function Call,也能够调用外部工具。因此,我们需要一个 MCP 客户端来作为大语言模型与你的应用程序(即 MCP 服务端)之间的信息传递桥梁。

如何使用 MCP
网站 https://www.pulsemcp.com/clients 搜集了各种可用的 MCP 客户端。我个人习惯使用名为 5ire 的客户端。

注意:客户端更新后可能需要重新添加 MCP 工具。

在“服务商”中填写你的 API Key。我使用的是 DeepSeek API,因其费用相对便宜。当然,如果你能使用 GPT-4 等模型则更佳。


我在 24 年年底测试时,使用 LMStudio 搭配 5ire 成功实现了本地 7B 参数的 DeepSeek V3 模型的 MCP 调用,不过运行速度较慢,因此我的 5ire 客户端版本一直未更新。
在 5ire 的“工具市场”中可以找到并添加许多现成的 MCP 服务。


可能需要提前全局安装 Python 的 uv 或 JavaScript 的 nodejs 环境。



编写简单的 MCP 服务
借助现成的框架,编写一个 MCP 服务并不困难。最简单的莫过于使用 Python 的 fastmcp 库。
from fastmcp import FastMCP
from datetime import datetime
import platform
import time
# 创建 MCP 实例
mcp = FastMCP("Local Time Service")
@mcp.tool()
def get_local_time() -> dict:
"""
获取当前计算机的本地时间信息
"""
now = datetime.now()
return {
"local_time": now.strftime("%Y-%m-%d %H:%M:%S"),
"timestamp": int(now.timestamp()),
"timezone": time.tzname,
"system": platform.system(),
"node": platform.node()
}
if __name__ == "__main__":
mcp.run()
在 5ire 中配置此本地服务(指向你保存上述脚本的目录)。

配置成功后,即可在对话中调用自定义的时间查询工具。

Part II:逆向工程工具集成实践
IDA Pro
该插件需要使用 IDA 的 Python API 进行操作,因此首先需要激活 IDA 的 Python 环境,确保能够正常运行 IDAPython 脚本。

然后,可以使用 idapyswitch.exe 切换 IDA 所使用的 Python 版本。
idapyswitch.exe --force-path .\python313\python3.dll
按照项目 README 文件进行安装:
pip uninstall ida-pro-mcp
pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip
ida-pro-mcp --install
安装后,将 C:\Users\xxx\AppData\Roaming\Hex-Rays\IDA Pro\plugins 目录下的 ida_mcp 文件夹和 ida_mcp.py 文件,剪切到包含 ida.exe 的文件夹下的 plugins 目录中。
在 5ire 中的配置命令如下(请根据你的实际路径修改):
python C:\Develop\Python\python3.14.2\Lib\site-packages\ida_pro_mcp\server.py --ida-rpc http://127.0.0.1:13337

使用时,在 IDA Pro 中通过 Edit -> Plugins -> MCP 启动服务。


最后,在 5ire 中即可向 AI 助手提问关于当前分析程序的问题。

Ghidra
Ghidra 是美国国家安全局(NSA)出品的一款完全开源的逆向工程框架。其项目地址为: https://github.com/NationalSecurityAgency/ghidra 。笔者最初使用它是因为当时 IDA 对 ARM 等异构指令集的分析支持还不够完善,而 Ghidra 的反编译效果更佳(不过现在 IDA 在这方面也已迎头赶上)。
下载后运行 ghidraRun.bat 即可启动。Ghidra 使用 Java 编写,因此支持跨平台运行,但需要配置 Java 环境,目前要求 JDK 21 及以上版本。

MCP 插件的安装很简单:下载发布包并解压得到 GhidraMCP-1-4.zip,然后在 Ghidra 中直接安装。


重启 Ghidra,在已打开分析项目的窗口,通过 File -> Configure -> Developer 勾选启用 GhidraMCPPlugin。


该插件的 README 提供了针对 5ire、Claude Desktop 和 Cline 的配置方法。对于 5ire,配置命令类似如下(请使用绝对路径):
python /ABSOLUTE_PATH_TO/bridge_mcp_ghidra.py

配置完成后,即可让 AI 助手分析 Ghidra 中当前加载的程序。

x64dbg
相比于初学者常用的、仅支持 32 位程序的 OllyDbg,x64dbg 提供了更优秀的界面和反汇编架构,是进行 Windows 平台逆向和调试的利器。它同样是一款开源的安全工具,项目地址为: https://github.com/x64dbg/x64dbg 。
软件安装不再赘述。安装 MCP 插件的方法是:下载发布包,解压后将插件文件(dp64 对应 x64dbg)放置到 <x64dbg安装目录>\release\x64\plugins\ 文件夹内。
在 5ire 中的配置非常简单,指向解压出来的 Python 脚本即可。

配置好后,AI 助手即可查询调试状态,例如寄存器的值。

WinDBG
WinDBG 可谓是 Windows 平台用户态和内核态调试的终极工具,历史悠久且由微软官方出品。安装方法可以参考其官方文档: https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/ 。
安装 MCP 模块只需要一条命令:
pip install mcp-windbg
启动服务也很方便:
python -m mcp_windbg
可能需要设置存储符号文件的环境变量 _NT_SYMBOL_PATH。在 5ire 中的配置 JSON 示例如下:
{
"id": "ab168ec4-6efc-4513-b8cb-1f54b65c354a",
"lebel": "WinDBG-MCP",
"description": "-",
"type": "local",
"command": "python",
"arguments": [
"-m",
"mcp_windbg"
],
"env": {
"_NT_SYMBOL_PATH": "SRV*C:\\$Symbols$*https://msdl.microsoft.com/download/symbols"
},
"approval_policy": "always",
"is_active": true
}
需要注意的是,当前这个 MCP 服务主要是为分析 .dmp 转储文件而设计的。

总结与展望
通过 MCP 协议,我们可以将强大的 AI 语言模型与专业的逆向工程工具深度结合。这不仅能辅助分析人员快速理解程序结构、查询关键信息,还能在动态调试时提供实时反馈,显著提升逆向分析的效率和深度。随着 人工智能 与协议生态的进一步发展,此类“AI+工具”的工作流将成为安全研究领域的常态。
对于逆向工程、二进制安全感兴趣的开发者,可以关注 安全/渗透/逆向 相关的技术动态,而实现这些 MCP 服务端则离不开扎实的 Python 编程能力。希望本文的实践指南能为你打开一扇新的大门,欢迎在 云栈社区 交流更多技术心得。