每当看到 CTF 题目里那些眼花缭乱的汇编代码,是不是脑袋一热直接
alt+f4
?
别急,时代变了——AI 已经可以替你逆向啦!
今天就来带你体验一下什么叫“真正的傻瓜式逆向”:只需安装几个工具,复制粘贴提示词,一步一步点下去,
看着 AI 在 IDA Pro 里翻江倒海,你只负责喝茶看输出。
逆向分析?交给 MCP!
cursor
作为演示) python 3.11.9
)注:
ida_pro
、cursor
请自行准备(本教程不包含安装步骤),下面重点讲如何配置 MCP。
你也可以参考官方 README: https://github.com/mrexodia/ida-pro-mcp ,下面是我的步骤(等价于仓库里的教程)。
pip install --upgrade git+https://github.com/mrexodia/ida-pro-mcp
ida-pro-mcp --install
ida-pro-mcp --config
4. 复制上面输出的配置,打开 cursor,选择:设置 -> MCP -> 添加 MCP 服务端
然后粘贴配置并保存
保存后再次查看即可确认 MCP 服务端已配置成功。
5. 打开 IDAPro 的根目录,运行 idapyswitch.exe,选择一个 Python 3.11 或以上的解释器(示例使用 python 3.11.9)
6. 启动 IDA Pro,开启 MCP 服务端。下方显示 MCP 服务端开启后即表示 OK。
配置完成后,就可以使用 cursor
进行“傻子逆向”了。
勒索病毒.exe
与 enflag.txt
。 flag.txt
根据用户输入的密钥加密生成 enflag.txt
。题目只给了 enflag.txt
,目标是还原出 flag.txt
(即找出加密时使用的密钥或逆向出解密逻辑)。被加密的 enflag.txt
的十六进制数据为(示例):
C3 82 A3 25 F6 4C 36 3B 59 CC C4 E9 F1 B5 32 18 B1 96 AE BF 08 35
勒索病毒.exe
,确保 MCP 服务端已开启,打开 cursor
。 cursor
中选择要使用的模型(优先gemini2.5-pro 其次claude3.7,gpt是一坨) 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 完成这道题
如果觉得有用的可以去给这个项目点点star https://github.com/mrexodia/ida-pro-mcp
如果您有更好的提示词,欢迎分享出来。