字数约2500,阅读大约需 10 分钟

目录

一、MCP简介

二、IDA Pro MCP工具概述

三、环境部署与工具链搭建

Cherry Studio的配置

IDA-Pro-MCP的安装

四、实例测试:Deepseek模型驱动的智能分析

五、结语

公众号来源:猕猴桃实验室     =>  转载请注明“转载于公众号:猕猴桃实验室”

微信公众号:猕猴桃实验室

一、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. 1. 安装Python 3.11+环境,安装 IDA Pro 8.3或者IDA Pro 9

  2. 2. 配置 MCP 服务器,部署IDA 插件:
    pip install git+https://github.com/mrexodia/ida-pro-mcp
    ida-pro-mcp --install
  3. 图片

    图片

  1. 3. 重启IDA Pro后,在Edit > Plugins列表确认"IDA Pro MCP"是否存在

  2. 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.1 启动支持函数调用的Deepseek-V3模型服务

  2. 1.2 在IDA中加载待分析ELF文件(示例:DefcampCTF2015 entry_language)

0x2 启用MCP工具: 

  1.  使用IDA Pro加载ELF文件,然后在插件中启用MCP服务;打开Cherry Studio的会话窗口加载DeepSeek模型,启用MCP工具

  2. 图片

  1. 测试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 字节
如果需要进一步分析或操作该文件,请告诉我!
  1. 本文来源于公众号:猕猴桃实验室 

    图片

  2. 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-内置的函数,自动化分析:

图片

  1. 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: 让AI赋能逆向工程】

IDA Pro+MCP+DeepSeek逆向小实战:构建AI逆向分析工作流

图片

[Source: 《IDA Pro+MCP+DeepSeek逆向小实战(文末有AI写的原版解题分析报告)》 by 猕猴桃实验室(kiwi-tech-lab), published on 微信公众号]

(来源于公众号:猕猴桃实验室)

社区交流订阅:

微信公众号:猕猴桃实验室

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐