基于MCP的核心学习以及在 IDA Pro 中的 MCP 实现

基本介绍

MCP 全称 Model Context Protocol,是由 Anthropic 公司在 2024 年 11 月推出一个开放协议,主要用于标准化应用程序向大语言模型提供上下文的方式。

就像给AI装了个“万能接口”,让大语言模型(比如ChatGPT、Claude)能像人类一样调用各种工具和数据源,不再是只会“空想”的聊天机器人

下面用大白话解释:

举个栗子🌰:你想让AI帮你整理电脑里的照片。

  • 传统方法:手动导出照片路径→复制给AI→等它生成建议→再自己操作
  • 用MCP:直接对AI说“按时间整理D盘的照片”,AI通过MCP自动读取文件、分析时间戳、创建文件夹一气呵成

MCP 的工作方式就是:

模型(比如 ChatGPT、Claude) ←→ MCP 协议 ←→ 你的工具(比如 IDA Pro)

你写一个 MCP server,它就会暴露一堆标准化的 API 接口,比如“给我这个函数的伪代码”、“搜索所有字符串”、“查找某个地址的交叉引用”……然后模型那边会通过 HTTP/JSON 去请求这些接口。模型像在跟你的工具“聊天”,但其实是通过 MCP 这个中间协议来对接的。

所以你不用再写复杂的 bridge、plugin、wrapper,直接通过 MCP,把你写的 server 接到模型那边就完事了。

和传统API的区别
普通API像“定制插座”——每个设备都要单独接线;MCP则是“无线充电板”——所有设备放上去就能用开发者不用再为每个工具写代码,用户也不用担心AI乱动数据(权限可控)

下面是原理图:

核心设计

  • 协议层次:MCP 定义了应用层格式,AI client(如 Claude、ChatGPT Agent)与 MCP server(各类工具的“桥梁”)通过 JSON‑RPC/HTTP 交换请求与响应。

  • 模型无关MCP 不绑定任何特定 LLM,实现了“USB‑C for AI integrations”的理念,任何支持 HTTP/JSON 的模型皆可接入

  • 安全与权限:通过预先注册的 API 端点和身份验证机制,将系统权限显式暴露给 AI,减少“任意执行”风险,但仍需用户自行评估安全边界

  • 这里是claude官方的资料参考

在 IDA Pro 中的 MCP 实现

这是我最近看文章发现的一个项目,具体点就是一个IDA pro插件,可以辅助一些简单的比较基础的逆向分析。

插件架构

  • ida-pro-mcp(mrexodia):由 mrexodia 发布的官方 MCP Server 插件,使用 Python 3.11+ 与 IDA Pro 9.x,通过 ida-pro-mcp --install 一键集成。

  • fdrechsler/mcp-server-idapro:另一社区实现,分为三部分——IDA Remote Control Plugin(ida_remote_server.py)、TypeScript 客户端,以及 MCP Server(index.ts),在 VSCode、Claude 等环境下均可无缝使用。

安装与使用

安装的话倒是挺容易的,这里可以参考官方的github仓库IDA-pro-MCP

简单说就是先用git从官方仓库拉取下载,然后配置MCP服务器安装

pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp
ida-pro-mcp --install
// 如果无法使用ida-pro-mcp --install命令,则cd到python目录下Scripts目录,运行ida-pro-mcp.exe --install
            

这里我配置的时候遇到了No module named 'cgi'的报错,具体原因分析了下是python3.13版本已经完全移除cgi这个模块了,所以引用的时候系统没找到。

但是我又注意到官方的文档里有说明需要python3.11及更高的环境

这说明我的python3.13是支持的,重新分析下报错,直到看到下面这个

这个是httpx的1.0Beta 版本,它内部还在用 import cgi,所以一到 Python 3.13 就炸了

于是我索性先把这个测试版卸了,然后安装旧版本的稳定版,确认安装的版本

pip uninstall httpx
pip install --upgrade httpx
pip show httpx

之后就正常安装了

安装完成后可以在IDA pro的插件列表里找到MCP,点击后Output里输出了[MCP] Server started at http://localhost:13337即安装成功

之后在IDE集成环境里添加MCP服务并且配置json就行,这里附上json参考:


{
  "mcpServers": {
    "github.com/mrexodia/ida-pro-mcp": {
      "isActive": true,
      "command": "C:\\Users\\你的用户名\\AppData\\Local\\Programs\\Python\\你的python版本\\python.exe",
      "args": [
        "C:\\Users\\你的用户名\\AppData\\Local\\Programs\\Python\\你的python版本\\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的未来

现在来看,

说成熟吧,还没完全标准化;说实验吧,也已经在很多生产环境用了。

目前社区活跃度挺高:

  • OpenAI、Anthropic、DeepMind 都支持 MCP 格式

  • GitHub 上一堆 plugin 在更新,尤其是安全圈在搞自动分析和漏洞挖掘的那帮人

  • IDA 插件市场和 VSCode extension 也在跟进

问题也有,比如权限管理、安全隔离还在完善,MCP server 和模型之间的信任边界怎么画、执行脚本时的沙箱机制等,都还是坑。但这些都属于“做大做强之前必须填”的坑,不是致命伤。

但是不可否认的是,MCP 可以成为 LLM 与逆向工具融合的核心协议,未来或见证“AI 直接写 exploit”流水线落地,期待更多研究者与工程师加入,共同见证 MCP 在二进制安全领域的革命性突破。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值