
IDA Pro+MCP+DeepSeek逆向小实战:构建AI逆向分析工作流
本文通过IDA Pro+MCP+DeepSeek构建AI逆向分析工作流,并有逆向小实战的实操
字数约2500,阅读大约需 10 分钟
目录
公众号来源:猕猴桃实验室 => 转载请注明“转载于公众号:猕猴桃实验室”

一、MCP简介
Model Context Protocol(MCP)作为Anthropic推出的标准化通信接口,可以将AI模型与外部数据源和工具建立安全的双向连接,为AI模型提供了连接不同数据源和服务的一种标准化手段。简单来说,MCP 是一个开放协议,将应用程序向大语言模型 (LLM)提供上下文的方式进行了标准化。
MCP的核心组件是:
-
• 主机(Host):运行AI助手或一些支持 MCP 的应用环境(如Cherry Studio、Claude App)
-
• MCP 客户端(MCP Client):客户端运行于主机上,按照服务器获取的信息处理 AI请求,并与服务器通信
-
• MCP 服务器(MCP Server):连接数据源或服务的中间连接层(如数据库、API)
假设你正在使用 Claude Desktop (Host) 询问:"我桌面上有哪些文档?"时,整个流程是这样的:你的问题 → Claude Desktop(Host) → Claude 模型 → 需要文件信息 → MCP Client 连接 → 文件系统 MCP Server → 执行操作 → 返回结果 → Claude 生成回答 → 显示在 Claude Desktop 上。
链接:https://zhuanlan.zhihu.com/p/29001189476
二、IDA Pro MCP工具概述
在逆向工程领域,MCP协议正在重构安全工具与AI模型的协作范式。该工具通过以下方式提升分析效率:
-
• 语义桥梁:建立二进制数据与大语言模型的通用交互语言
-
• 操作抽象:将反编译、交叉引用等23种逆向操作封装为API指令
-
• 上下文感知:实时同步IDA数据库状态,支持动态分析决策
具体可见 IDA Pro MCP: 让AI赋能逆向工程 或 https://github.com/mrexodia/ida-pro-mcp
本文来源于公众号:猕猴桃实验室
三、环境部署与工具链搭建
Cherry Studio的配置
访问Cherry Studio的开源页面下载Windows版本客户端,并安装。
Cherry Studio安装成功后,打开Cherry Studio的设置页面,点击MCP服务器
菜单栏,直接点击自动安装UV与Bun环境。(也可以手动安装UV和Bun环境),安装成功后,UV缺失和Bun缺失的提示消失:
本文来源于公众号:猕猴桃实验室
接下来,就是获取大模型服务的API Key,可以选择付费的API调用,如DeepSeek的API调用。也可以前往 https://openrouter.ai/ 薅免费大模型的API Key。
在Cherry Studio的设置页面,点击模型服务
菜单栏,配置大模型,比如可以选择openrouter
,键入openrouter
的API Key。此时就会出现一些免费的大模型可供选择、使用:
我们在使用MCP工具的时候,需要选择带有🔧扳手标志的大模型,此类型表示支持函数调用
功能,这样后续才可以在对话框加载上MCP工具
本文来源于公众号:猕猴桃实验室
IDA-Pro-MCP的安装
接下来,按照 https://github.com/mrexodia/ida-pro-mcp 的描述安装IDA-Pro-MCP
也可以进入https://mcp.so 查找其它IDA相关的MCP工具安装
-
1. 安装Python 3.11+环境,安装 IDA Pro 8.3或者IDA Pro 9
- 2. 配置 MCP 服务器,部署IDA 插件:
pip install git+https://github.com/mrexodia/ida-pro-mcp ida-pro-mcp --install
-
-
3. 重启IDA Pro后,在Edit > Plugins列表确认"IDA Pro MCP"是否存在
-
4. 此时,可以打开 Cherry Studio的设置页面,点击
MCP服务器
菜单栏,查看MCP服务是否配置成功、是否开启。如果没有配置成功,可以点击编辑MCP服务
,手动将下面的配置文件复制到对话框。然后点击、保存,此时配置成功后,该状态会变绿色:
{
"mcpServers": {
"github.com/mrexodia/ida-pro-mcp": {
"isActive": true,
"command": "C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python313\\python.exe",
"args": [
"C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\site-packages\\ida_pro_mcp\\server.py"
],
"timeout": 1800,
"disabled": false,
"autoApprove": [
"check_connection",
"get_metadata",
"get_function_by_name",
"get_function_by_address",
"get_current_address",
"get_current_function",
"convert_number",
"list_functions",
"list_strings",
"search_strings",
"decompile_function",
"disassemble_function",
"get_xrefs_to",
"get_entry_points",
"set_comment",
"rename_local_variable",
"rename_global_variable",
"set_global_variable_type",
"rename_function",
"set_function_prototype",
"declare_c_type",
"set_local_variable_type"
],
"alwaysAllow": [
"check_connection",
"get_metadata",
"get_function_by_name",
"get_function_by_address",
"get_current_address",
"get_current_function",
"convert_number",
"list_functions",
"list_strings",
"search_strings",
"decompile_function",
"disassemble_function",
"get_xrefs_to",
"get_entry_points",
"set_comment",
"rename_local_variable",
"rename_global_variable",
"set_global_variable_type",
"rename_function",
"set_function_prototype",
"declare_c_type",
"set_local_variable_type"
],
"name": "github.com/mrexodia/ida-pro-mcp"
}
}
}
手动配置MCP服务参数时候,需要将里面的路径改成自己环境中的路径
四、实例测试:Deepseek模型驱动的智能分析
0x1 环境准备:
-
1.1 启动支持函数调用的Deepseek-V3模型服务
-
1.2 在IDA中加载待分析ELF文件(示例:DefcampCTF2015 entry_language)
0x2 启用MCP工具:
-
使用IDA Pro加载ELF文件,然后在插件中启用MCP服务;打开Cherry Studio的会话窗口加载DeepSeek模型,启用MCP工具
-
-
测试IDA通过MCP是否和DeepSeek连通成功,提问:
[用户]
此时IDA Pro中打开的文件是什么?
----------------------------
[DeepSeek Chat | 深度求索]
get_metadata 已完成
当前在IDA Pro中打开的文件是:
路径: C:\Users\test\Desktop\entry_language.elf
模块名: entry_language.elf
基地址: 0x400000
大小: 0x2010b8 字节
MD5: 7f24336a9475b4a6a79086f29ec0949a
SHA256: 8c481c589e9f95acbfdc20b54f5965017604a4c149dd72ec6bde55a5ea2a11bc
CRC32: 0x54f3155e
文件大小: 0x18b0 字节
如果需要进一步分析或操作该文件,请告诉我!
-
本文来源于公众号:猕猴桃实验室
-
0x3 深入提问,继续分析
DeepSeek能成功分析到目标文件后,通过提示词调用MCP工具进行自动化分析、解题:
你需要进一步需要进一步分析或操作该文件,这是一个密码验证题,输入一个字符串,程序验证对错,输入错误的password错误会报错“Incorrect password!”,需要输入正确的password通过验证。你现在需要通过分析得到正确的password,你可以使用MCP工具检索信息,这个分析过程按照以下策略:
- 你的工作路径是C:\Users\test\Desktop\,重点关注的文件是entry_language.elf.id0、entry_language.elf.id1、entry_language.elf.id2、entry_language.elf.nam、entry_language.elf.til
- 检查反编译的情况,并把你的发现添加到反编译的代码注释中
- 将变量重命名为更合理的名称
- 如果有必要,修改变量和参数类型(尤其是指针和数组类型)
- 修改函数名,使其更具描述性
- 如果需要更多的细节,反汇编函数,并把你的发现并添加到代码注释中
- 永远不要自行改变数据类型。 如果需要,使用convert_number MCP工具!
- 不要尝试暴力破解,而是从反汇编和简单的python脚本中获得一切解决方案
- 创建一个report.md文件,在report.md文件中添加你的发现和你解决问题的步骤
- 找到这个密码验证题的解决思路后,提示用户找到了正确的password,并说出password的正确值
本文来源于公众号:猕猴桃实验室
调用大量ida-pro-内置的函数,自动化分析:
-
0x4 结果验证
花了4角1分钱的token ,把关键部分的代码分析出来了:
但是AI并没直接把算法成功逆向、跑出正确的password。经测试下来,效果感觉还有许多优化和进步的地方
或许后续在执行自动化分析二进制程序的时候,需要注意一下:
-
• 预处理:预处理好混淆代码,亦或先用 math-mcp 等工具先处理等容易产生幻觉的场景(如算法)
-
• 互动式执行分析任务:尽量分步执行分析的提示词,根据分析结果的反馈,调整下一步分析的提示词,让每一步都贴合实际情况
-
• 防幻觉机制:设置"如无明确证据需标注[推测]"
或许下次可以换个大模型来自动化分析,比如 Claude 3.7 Sonnet 。
五、结语
目前,MCP的加持,确实已经让自动化分析变得更加快捷、有效,能快速得到分析中需要的一些关键点。通过MCP协议,IDA Pro正在从静态分析工具转型为智能安全中台。这种变革不仅提升单个逆向任务的效率,更重要的是构建起人机协同的新型研究范式。
但现阶段,还是需要分析人员本身有一定的技术基础和经验,技巧性地使用提示词,交互式参与MCP工具的分析工作。期待未来有逆向分析的领域专属微调大模型或技术,让逆向分析或其它工作真•全智能化。
转载请注明“转载于公众号:猕猴桃实验室”

参考:
-
https://www.dailydoseofds.com/p/visual-guide-to-model-context-protocol-mcp/
-
https://github.com/mrexodia/ida-pro-mcp
-
https://github.com/CherryHQ/cherry-studio/releases
-
https://modelcontextprotocol.io/introduction
-
https://zhuanlan.zhihu.com/p/29001189476
免责声明:
文章中涉及的内容可能带有攻击性、损害性,请注意识别。文章内容仅能用于安全检测、安全防御、安全研究等合法合规的用途,请勿用作其它方面。若有违反,违反者将自行承担相应法律责任及连带责任,违反者的行为与本文章内容的创作者无关。请遵守相关法律法规,共同维护网络环境的清朗!如有问题可私信联系,望知悉。
往期回顾:
IDA Pro+MCP+DeepSeek逆向小实战:构建AI逆向分析工作流
[Source: 《IDA Pro+MCP+DeepSeek逆向小实战(文末有AI写的原版解题分析报告)》 by 猕猴桃实验室(kiwi-tech-lab), published on 微信公众号]
(来源于公众号:猕猴桃实验室)
社区交流订阅:

更多推荐
所有评论(0)