【MCP】IDA_Pro

“不会逆向?那是你还没遇到MCP。”

每当看到 CTF 题目里那些眼花缭乱的汇编代码,是不是脑袋一热直接 alt+f4
别急,时代变了——AI 已经可以替你逆向啦!
今天就来带你体验一下什么叫“真正的傻瓜式逆向”:只需安装几个工具,复制粘贴提示词,一步一步点下去,
看着 AI 在 IDA Pro 里翻江倒海,你只负责喝茶看输出。
逆向分析?交给 MCP


1. 环境准备

  • IDA Pro(推荐 9 以上版本,本示例使用 9.1
  • mcp 客户端(本文以 cursor 作为演示)
  • MCP 服务端(示例采用 https://github.com/mrexodia/ida-pro-mcp
  • Python 3.11 及以上(示例使用 python 3.11.9

注:ida_procursor 请自行准备(本教程不包含安装步骤),下面重点讲如何配置 MCP。


2. MCP 服务端快速安装与配置

你也可以参考官方 README: https://github.com/mrexodia/ida-pro-mcp ,下面是我的步骤(等价于仓库里的教程)。

  1. 安装(或升级)IDA Pro MCP 包:
pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp
  1. 配置 MCP 服务器并安装 IDA 插件:
ida-pro-mcp --install
  1. 获取 MCP 服务端的配置文件:
ida-pro-mcp --config

Pasted image 20250920202940
4. 复制上面输出的配置,打开 cursor,选择:设置 -> MCP -> 添加 MCP 服务端
Pasted image 20250920202951
然后粘贴配置并保存
Pasted image 20250920202959
保存后再次查看即可确认 MCP 服务端已配置成功。
Pasted image 20250920203013
5. 打开 IDAPro 的根目录,运行 idapyswitch.exe,选择一个 Python 3.11 或以上的解释器(示例使用 python 3.11.9)
Pasted image 20250920203019
6. 启动 IDA Pro,开启 MCP 服务端。下方显示 MCP 服务端开启后即表示 OK。
Pasted image 20250920203024

配置完成后,就可以使用 cursor 进行“傻子逆向”了。


3. 案例演示(示例题:re2)

  • 题目来自 CTF 平台: https://ctf.show/challenges#re2-59
  • 附件解压后得到:勒索病毒.exeenflag.txt
  • 分析思路:程序会把 flag.txt 根据用户输入的密钥加密生成 enflag.txt。题目只给了 enflag.txt,目标是还原出 flag.txt(即找出加密时使用的密钥或逆向出解密逻辑)。

被加密的 enflag.txt 的十六进制数据为(示例):
Pasted image 20250920203103

C3 82 A3 25 F6 4C 36 3B 59 CC C4 E9 F1 B5 32 18 B1 96 AE BF 08 35

4. AI 逆向流程(在 IDA + MCP + cursor 下)

  1. 用 IDA 打开 勒索病毒.exe,确保 MCP 服务端已开启,打开 cursor
  2. cursor 中选择要使用的模型(优先gemini2.5-pro 其次claude3.7,gpt是一坨)
  3. cursor 中输入合适的提示词(Prompt),这一步极其重要:LLM 容易出现“幻觉”,尤其在整数与字节转换上更容易出错。

下面是提示词

您的任务是在 IDA Pro 中分析一个程序。程序的加密大致逻辑是,首先接受一个flag.txt,然后输入密码,完成加密并输出enflag.txt。 我现在有一个enflag.txt 他的16进制是 C3 82 A3 25 F6 4C 36 3B 59 CC C4 E9 F1 B5 32 18 B1 96 AE BF 08 35。请帮我进行逆向并解出对应的flag.txt
您可以使用 MCP 工具来检索信息。通常使用以下策略:
1.检查反编译结果并添加你的发现注释
2.将变量重命名为更合理的名称
3.如有必要,更改变量和参数类型(特别是指针和数组类型)
4.将函数名改为更具描述性的名称
5.如果需要更多信息,请反汇编函数并添加您的发现注释
6.千万不要自己转换数制。如有需要,请使用 convert_number MCP 工具!
7.不要尝试暴力破解,纯粹从反汇编和简单的 Python 脚本中推导解决方案
8.在最后创建一个 report.md 文件,记录你的发现和采取的步骤
9.当你找到解决方案时,请用你找到的密码向用户请求反馈 

在使用过程中,模型可能会要求运行脚本并把脚本输出的密钥提交回它以继续分析——按提示做即可。

然后一路点ok即可。
中途可能会要求你运行脚本,然后将脚本运行结果得到的密钥提交给它
下面是解题过程(只是记录一下ai的思考过程,基本没有人工干预)
全程没有动IDA一下,纯靠AI 完成这道题
Pasted image 20250920203359

如果觉得有用的可以去给这个项目点点star https://github.com/mrexodia/ida-pro-mcp
如果您有更好的提示词,欢迎分享出来。