IDA_Pro MCP接入与使用教程
本帖最后由 ryanu 于 2025-9-20 20:43 编辑# “不会逆向?那是你还没遇到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_pro`、`cursor` 请自行准备(本教程不包含安装步骤),下面重点讲如何配置 MCP。
---
## 2. MCP 服务端快速安装与配置
你也可以参考官方 README: https://github.com/mrexodia/ida-pro-mcp ,下面是我的步骤(等价于仓库里的教程)。
1. **安装(或升级)IDA Pro MCP 包:**
```bash
pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp
```
2. **配置 MCP 服务器并安装 IDA 插件:**
```bash
ida-pro-mcp --install
```
3. **获取 MCP 服务端的配置文件:**
```bash
ida-pro-mcp --config
```
!(https://yurain.oss-cn-chengdu.aliyuncs.com/ObsidianPasted%20image%2020250920202940.png)
4. **复制上面输出的配置,打开 cursor,选择:设置 -> MCP -> 添加 MCP 服务端**
!(https://yurain.oss-cn-chengdu.aliyuncs.com/ObsidianPasted%20image%2020250920202951.png)
**然后粘贴配置并保存**
!(https://yurain.oss-cn-chengdu.aliyuncs.com/ObsidianPasted%20image%2020250920202959.png)
**保存后再次查看即可确认 MCP 服务端已配置成功。**
!(https://yurain.oss-cn-chengdu.aliyuncs.com/ObsidianPasted%20image%2020250920203013.png)
5. **打开 IDAPro 的根目录,运行 idapyswitch.exe,选择一个 Python 3.11 或以上的解释器(示例使用 python 3.11.9)**
!(https://yurain.oss-cn-chengdu.aliyuncs.com/ObsidianPasted%20image%2020250920203019.png)
6. **启动 IDA Pro,开启 MCP 服务端。下方显示 MCP 服务端开启后即表示 OK。**
!(https://yurain.oss-cn-chengdu.aliyuncs.com/ObsidianPasted%20image%2020250920203024.png)
配置完成后,就可以使用 `cursor` 进行“傻子逆向”了。
---
## 3. 案例演示(示例题:re2)
- 题目来自 CTF 平台: https://ctf.show/challenges#re2-59
- 附件解压后得到:`勒索病毒.exe` 与 `enflag.txt`。
- 分析思路:程序会把 `flag.txt` 根据用户输入的密钥加密生成 `enflag.txt`。题目只给了 `enflag.txt`,目标是还原出 `flag.txt`(即找出加密时使用的密钥或逆向出解密逻辑)。
被加密的 `enflag.txt` 的十六进制数据为(示例):
!(https://yurain.oss-cn-chengdu.aliyuncs.com/ObsidianPasted%20image%2020250920203103.png)
```
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 容易出现“幻觉”,尤其在整数与字节转换上更容易出错。
下面是提示词
```txt
您的任务是在 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 完成这道题
!(https://yurain.oss-cn-chengdu.aliyuncs.com/ObsidianPasted%20image%2020250920203359.png)
如果觉得有用的可以去给这个项目点点star https://github.com/mrexodia/ida-pro-mcp
如果您有更好的提示词,欢迎分享出来。 yAYa的表哥 发表于 2025-5-21 04:01
我根据你的方法使用一下,到了Cursor就不会了,教程没完整,而且并不是每个人都用过Cursor。完全按照你的和 ...
1.你随便创建一个项目即可。
2.cmd执行命令 ida-pro-mcp --config获取配置文件
3.点击右上角那个齿轮--》右边的MCP --》Add new global MCP server--》把第二步的配置文件放到里面,保存。
4. cursor快捷键 ctrl+alt+b 可以直接打开对话框。 选择对应的模型直接提问就行了
ps: cursor是付费的,有免费的试用额度。 网上也有无限白嫖试用的方法,这里我就不提供了
抱歉,我直接从自己笔记copy过来的,第一次发贴,这个格式确实有点搞不来, 大家将就点看吧{:1_936:} 【表情】以后逆向ai之路 在反逆向ai 我丢,这截图{:301_1009:} 我根据你的方法使用一下,到了Cursor就不会了,教程没完整,而且并不是每个人都用过Cursor。完全按照你的和案例,都没有任何反应!!{:1_937:} 很棒,感谢楼主,提供给了小白一些重要的逆向思路。 相当牛掰{:1_921:} 已经可以通过AI来进行傻瓜式逆向,这个方法好,马上进行测试,谢谢楼主。 ryanu 发表于 2025-5-21 11:06
1.你随便创建一个项目即可。
2.cmd执行命令 ida-pro-mcp --config获取配置文件
3.点击右上角那个齿轮 ...
我折腾了好久用过了,也用trae其次也用了其他程序调试,不知道不是提升词问题吧,辅助一下还是可以用,用了个简单程序没怎么能给我解决到问题,最终动静结合,我才把他算法写出来!