什么是MCP
一图胜千言:
通俗来讲,MCP 就是以更标准的方式让 LLMs 可以使用各种不同工具,更简单的可视化如下图所示:
GhidraMCP
GhidraMCP是一款让LLMs自主逆向工程应用程序的模型上下文协议(Model Context Protocol)服务器。它将 Ghidra 核心功能中的众多工具提供给了 MCP 客户端,目前该项目在GitHub上已拥有3.8k Star。
食用教程
安装
确保系统已安装了Python3,然后安装 Ghidra :
最后下载并安装 GhidraMCP 插件:
https://github.com/LaurieWired/GhidraMCP/releases
GhidraMCP 配置
打开Ghidra,选择File
-> Install Extensions
,然后点击右上角“+”,选择下载好的GhidraMCP-1-1.zip
,然后重启Ghidra:
重启Ghidra后,随便打开一个项目,然后选择File
-> Configure
-> Developer
,确认GhidraMCPPlugin已启用:
MCP服务器配置
以Cherry Studio为例,左下角点击“设置”->“MCP 服务器”,添加服务器:
添加完成后,回到Cherry Studio 的助手窗口,点击添加助手或使用默认助手均可:
在模型选择上,选择包含有“扳手”图标的大模型:
然后在对话框上方开启相应的MCP:
以某.so文件为例:
我们对AI提出如下要求:
可以看到,原先FUN_00012564的函数经过AI的搜索、逆向分析与推导后(用时5.6秒),最终被重命名为了GetRegisterValue:
另外以一道简单的PWN题为例:
可以在思考过程中看到,AI发现check()为具体的漏洞点,并尝试使用python脚本写出了PoC代码,经过对代码的执行验证后,发现不正确,通过对AI的再次提问,AI给出了另外的PoC代码:
经过验证,依然不正确,有待各位的进一步‘调教’和‘探索’吧~
使用感受
虽然MCP技术的突破性应用显著提升了逆向工程效率,将传统人工主导的二进制分析工作转化为人机协同模式,但目前要实现AI全自动化的漏洞深度挖掘及PoC代码生成仍存在技术瓶颈。
从工程实践角度来看,这既需要持续优化交互式指令(Prompt)的精准度以提高AI的意图理解能力,也要求AI本身的漏洞模式识别与逻辑推理能力进行迭代升级。但骨哥看来,这个过程应该不会太久,相信MCP很快会迎来不断的’升级‘与‘创新‘。