夜雨聆风学习资料网

ARTICLE · 1197059

【REA】工具是真的,“AI 学会破解任意软件”是吹牛

【REA】工具是真的,“AI 学会破解任意软件”是吹牛

━━━━━━━━━━━━━━━━━━━━

◆ 第一章:装完以后,AI 脑子里多了什么

━━━━━━━━━━━━━━━━━━━━

最近一个叫 REA 的项目很火。它的全名是 Reverse Engineer Anything,直译过来是“逆向一切”。到了转发链里,这句话渐渐变成:给 AI 装上这个技能,它就能破解任意软件。

10 月 14 日查看时,GitHub 上的星数已经达到 25.2 万,README 里的庆祝语却还停在 20 万。连庆祝文案都追不上星数增长。项目地址: https://github.com/morluto/rea

也有另一种说法:这东西不就是几句提示词吗,纯属包装。

我把 GitHub 当前内容和 npm 6.4.0 发布包里的提示词、工具定义、安装逻辑和官方案例读了一遍。两种说法都不准。

它不是给模型下载了一份“逆向能力”,也不只是一个提示词包。它是一套连接现有逆向工具的 MCP 服务,再配一套教智能体怎样调查的说明书。

先看安装命令:

npx rea-agents setup

完整安装主要做两件事:

  1. 给 Claude Code、Codex、Gemini CLI 等智能体注册一个本地 MCP(Model Context Protocol,模型上下文协议)服务器,让它们能调用 REA 的工具。
  2. 写入一份 SKILL.md 和六份参考文档,告诉智能体遇到不同目标时该选哪条调查路线。

这里有个容易被传播省略的区别:只安装 skill(技能说明),得到的只有文字说明,不会多出任何分析工具。 注册 MCP 之后,智能体才真正拿到工具入口。

模型本身没有变化。没有微调,没有新增权重,也没有一份“软件破解知识”被灌进去。原来负责思考的是哪个模型,装完以后还是那个模型。

所谓“AI 看了 REA 就会逆向”,准确说法是:安装不会新增模型权重,也不会训练出通用逆向能力;它改变的是当前任务里可用的工具和调查说明。 “会调用”和“学会”,中间还差得很远。

━━━━━━━━━━━━━━━━━━━━

◆ 第二章:提示词没有咒语,只有一套调查流程

━━━━━━━━━━━━━━━━━━━━

REA 的提示词倒是很值得一读,因为它确实不是一句“你是逆向大师,请破解这个软件”。

主说明文件先教智能体按目标分流:原生二进制、JavaScript/Electron 应用、安卓安装包、.NET 程序集、网页、固件,各自走不同工具。接着是工作方式:先看概览,再按问题追细节;大结果分页读取;静态证据回答不了时,再考虑运行目标;结束前核对最初的问题清单。

发布包的 MCP server 里还注册了六个引导式提示词。注意,它们不是六份文档,而是写在 promptContracts.js 源码里的六组提示词模板:

  • investigate_feature
    追踪一个功能怎样实现;
  • compare_application_versions
    比较两个应用版本;
  • verify_reconstruction
    验证重写出来的实现;
  • trace_crash
    定位一次崩溃;
  • audit_residual_unknowns
    复查仍未解决的问题;
  • prepare_bounded_process_capture
    设计一次有边界的进程观察。

MCP 客户端调用其中一项时,server 再把对应模板和参数拼成一段发给模型的文本。安装时真正落盘的文档则是另一组:SKILL.md 加上 references/ 目录下的六份参考文件。这些提示词模板共享四条纪律:观察要来自工具返回的证据;推断要标成推断,并保留其他解释;覆盖不完整和证据冲突要明说;没搜到不能写成不存在。

这套提示词的价值是防止智能体一路瞎编,不是给它传授某种秘密逆向算法。 里面没有“自动绕过授权”“统一处理混淆”“一键恢复源码”之类的咒语。

它甚至特意提醒:普通源码仓库的分析不要动用 REA,直接用常规代码工具。这个项目自己的说明,都比热帖里的说法克制。

━━━━━━━━━━━━━━━━━━━━

◆ 第三章:170 个工具怎样落地:skill、MCP 和外部引擎

━━━━━━━━━━━━━━━━━━━━

当前 SKILL.md 的元数据标称有 170 个工具。但这 170 个不是 170 个独立程序,也不是每个环境装完都能用。它们由三层东西共同提供:

  1. REA 自己的 npm 包。里面有 CLI(Command-Line Interface,命令行接口)和本地 MCP server,负责接收智能体的调用、执行分析流程,再返回 Evidence(证据记录)。JavaScript/Electron、.NET、应用包清点、版本比较等不少功能,确实由 REA 自己的 TypeScript 代码完成。
  2. 外部分析引擎。深度原生分析仍然靠 Ghidra、Hopper、IDA,安卓靠 JADX,固件靠 Binwalk 或 Unblob。REA 负责调用它们,没有重新发明一套反编译器。
  3. 工作流说明。SKILL.md 和六个引导模板只负责告诉智能体怎样选工具、怎样保存证据、怎样避免把推断写成事实。只安装这层说明,没有前两层,分析能力很有限。

那条 npx rea-agents setup 命令负责的是第 1 层和第 3 层:注册本地 MCP server,并写入 skill。它不会顺便把 Ghidra、IDA、Java、Python 等依赖全都装好。 Hopper 只在受支持的 Linux 和 macOS 环境里有单独的可选安装;其余引擎基本都要自己准备。

实际调用链大致是:智能体提出问题 → 本地 MCP server 接收调用 → REA 执行自己的分析或调用外部引擎 → 工具结果连同覆盖范围和限制返回给模型。REA 不需要自己的云端服务,但如果用的是云端模型,这些结果还是会发到模型厂商那里,也就是第五章说的账号风险。

REA 会用到哪些软件?认识它们各自负责什么、通常在哪些系统上运行,就够了:

软件
主要做什么
运行环境
Node.js
运行 REA 本身,以及它的 JavaScript / Electron、.NET 等分析代码
Windows、Linux、macOS
Ghidra
分析原生二进制,查看汇编、反编译伪代码和函数关系
Windows、Linux、macOS;需要 Java 环境
Hopper
反汇编和反编译原生程序
Linux、macOS
IDA
分析原生程序,查看函数、汇编和交叉引用
Windows、Linux、macOS;REA 通过配套接口连接
JADX
把安卓安装包中的 DEX 字节码反编译成便于阅读的 Java 代码
Windows、Linux、macOS;需要 Java 环境
Binwalk / Unblob
识别、展开固件中的文件系统和嵌套数据
REA 的相关流程主要在 Linux 上运行
GDB
调试程序,检查断点、寄存器和内存
REA 的 GDB 调试流程目前在 Linux 上运行
Rizin
查看二进制结构、反汇编和分析程序
工具本身支持 Windows、Linux、macOS;接入 REA 时还要看具体功能支持

这是工具分工表。软件本身支持某个系统,不代表 REA 在这个系统上接通了它的所有功能。比如 Ghidra 能在 Windows 上运行,但 REA 的 Windows 接入目前仍是实验性的只读支持;REA 的进程捕获则支持 Linux 和 macOS,暂不支持原生 Windows。

所以“170 个工具”更像一张全目录,不是一张全平台可用清单。REA 降低的是智能体接入工具的难度,不会抹平操作系统、目标格式和外部引擎本身的边界。

────────────────────

💡 工具多,不等于任务更容易

REA 不改变模型智力。能力强的大模型本来就能开终端、写 objdump 脚本、读汇编、做逐值验证。像我们这种已有完整工具链的任务,装它收益有限,还多一层依赖。

工具目录和流程一大,模型需要处理的选择和上下文也会变多,能力弱的模型更容易乱。真正受益的是“模型有能力、手头没现成工具链”的场景:REA 省的是管道工作,补不了逆向判断。

────────────────────

不过,把目标和可用工具都压到足够小以后,它确实还有一层很实际的价值:把一部分逆向任务变成可以照做的操作单。比如“搜成功或失败字符串 → 找到检查函数 → 读汇编和掩码常量 → 把检查写成方程 → 求解 → 拿原程序验证”。给它三四个固定操作,通常比把 170 个工具全塞给它更合适。

这就是它真正有用的地方:固定流程 + 确定工具 + 机械验收。 CTF(Capture The Flag,夺旗赛)小题、单个函数恢复、Electron 功能追踪这类边界清楚的活,能力一般的模型也能照着做,不必凭空想方法;目标一旦复杂到需要设计新方法,通用流程就不够用了。

工具和平台的边界说清楚了,再看官方案例里它到底做到了哪一步。

━━━━━━━━━━━━━━━━━━━━

◆ 第四章:官方案例里,REA 到底改变了什么

━━━━━━━━━━━━━━━━━━━━

如果还没把分析工具接给智能体,常见做法是:人打开 Ghidra 或 IDA,找到函数,把伪代码、汇编和常量复制给模型;模型分析完如果还缺材料,人再回去查一遍。

这里要先说清一件根本的事:能直接读汇编,是大模型自己已经具备的能力,不是 REA 教的。 把一段汇编文本交给模型,它本来就能读,而且常常比多数程序员读得更快。

REA 改变的是这段取证过程。反编译器还是原来那个反编译器,模型也没有突然变聪明,变化的是智能体可以自己打开目标、搜字符串、查交叉引用、读汇编和常量,并把这些结果保存成 Evidence。 它没有改进底层反编译算法,但能让模型继续查询更多材料。

DX-Ball 是 1996 年的一款 Windows 打砖块游戏。官方案例挑的是其中一个把砖块横坐标换算成声音左右偏移值的函数。反编译器最初只给出 FUN_00406400(void) 和一次 __ftol() 调用,连函数输入都没有恢复出来。在这种手工协作方式下,人要回到分析工具里查这个函数的汇编、调用者和内存常量,再把这些材料交给模型。

有 REA 后,智能体自己去读原始汇编,从 [EBP+8] 找到整数输入;再追调用者,弄清这个数是砖块的横坐标;再读浮点常量,最后手写出 C 函数。官方案例又用 3,205 组行为用例对照原函数,并用固定编译器验证重写结果的 63 个编译字节。

所以在这个案例里,REA 没有把不完整的伪代码直接变成正确的 C 函数,它做的是让智能体在伪代码不够用时,自己把缺失的证据找齐。 理解语义、写实现、做验证,仍然要靠模型和人。

────────────────────

第二个案例来自网络安全夺旗赛(Capture The Flag,CTF)。参赛者通过逆向、漏洞利用等题目拿到一段叫 flag 的答案字符串,这道题就是检查输入的 flag 是否正确。REA 负责从约 15 KB、已去掉符号的 ELF(Executable and Linkable Format,可执行与可链接格式)文件里搜提示字符串、追交叉引用、找到检查函数、读出 26 组掩码与目标值。接下来的方程怎么列、怎么用 Z3 约束求解器(寻找满足方程与条件的取值)求解,以及最后怎样拿原程序验证,才是智能体要完成的推理。

换句话说,REA 没有替智能体解出答案,它把“从二进制里找到并读出检查条件”这段机械工作接了过去。 边界清楚的小题因此可以照着固定流程走,而不是看到一个大型商业软件就自动还原出源码。

────────────────────

Notion 是常见的笔记和项目管理应用,桌面版用 Electron 打包。Electron 把 Chromium 网页界面和 Node.js 系统能力装进一个桌面程序,页面、预加载脚本和主进程分别负责不同部分。这个案例不是读原生机器码,而是研究应用包里的 JavaScript:页面调用 clipboard.write,先经过预加载脚本,再通过 IPC(Inter-Process Communication,进程间通信)进入主进程,最后到系统剪贴板;另外还要看复制内容怎样对应 Notion 的块结构。

这个案例同样能看出各自分工。REA 的 JavaScript 静态分析先定位页面暴露的接口和 IPC 调用位置,省得人在压缩后的巨型包里盲搜;但剪贴板功能怎样穿过预加载脚本、IPC 通道和主进程接收器,仍由智能体继续阅读代码并接起来。

这三个案例的共同点是:REA 把“找证据、继续查证据”从人的手工操作变成智能体自己的动作;理解、实现和验证没有消失。 如果只是一次 objdump 就能解决的小问题,有没有 REA 差别不大;如果需要模型连续追十几次证据,它省掉的是人来回复制、切换和整理材料的时间。

━━━━━━━━━━━━━━━━━━━━

◆ 第五章:别乱用,小心封号

━━━━━━━━━━━━━━━━━━━━

先说 Claude。国内用户最近一年被风控扫得很厉害,至少我身边用 Claude 的人,账号基本都被封遍了,很多人已经没得用。还没被封的,也别为了 REA 去试,没必要拿剩下的账号验证它会不会踩线。

再说 GPT 和 Codex。REA 的工具确实在你的电脑上运行,但智能体不一定在本地。反编译出来的伪代码、字符串、调用关系和运行结果,会作为工具输出交给 Codex、Claude 等云端模型。模型厂商不需要知道你装了哪个 MCP,看会话内容就知道你在做逆向。

账号风险也不是空穴来风。10 月 12 日,一位叫 Vincent 的用户发帖说,自己拿 Codex 试用 REA,2022 年注册的 OpenAI 老号随后被停用。他贴出了注册邮件和停用通知,但没说具体分析目标,停用通知也只写“发现政策不允许的活动”,没有给原因。

Hacker News 上还有人说自己因“太多逆向工作”被 OpenAI 永久封号。不过那位当事人后来补充:自己连续收到三次警告,实际做的是进攻性安全研究,没参加网络安全项目,还拿到过几个零日漏洞。这个过程不能简化成“普通人用 REA 分析软件就会被封”。

OpenAI 的公开政策也没有写“一律禁止逆向”。它禁止的是恶意网络活动、侵犯知识产权、未经请求的安全测试和绕过平台自身的安全防护等。目标是什么、拿来做什么、有没有连续触碰护栏,性质完全不同。

所以“REA 必然导致封号”说满了,但“本地运行,厂商无从得知”也说错了。目前能确认的是:已经有人自称用 REA 后被封,具体原因没有公开;账号风险不由 REA 的免责声明决定,而由模型厂商的规则和实际使用方式决定。

我的建议很直接:求稳的话,别拿 Codex、Claude 这类美国云端模型的主力账号跑敏感逆向,尤其别碰付费功能、漏洞挖掘,更别在连续触发拒绝后还往前顶。分析自己的旧软件、做小实验时,完全在本地分析、不把结果交给云端模型,就没有这层云端账号风险。

━━━━━━━━━━━━━━━━━━━━

◆ 第六章:有用和吹牛,边界就在这里

━━━━━━━━━━━━━━━━━━━━

到这里,可以给几句流行说法分别下判断了:

说法
判断
原因
REA 能让智能体直接调用一批逆向工具
成立
MCP 工具与命令行接口真实存在,覆盖的目标类型也很多
REA 只是几句提示词
不成立
它有实际的解析、追踪、比较、运行时观察和证据管理代码
装上 REA,模型就学会了逆向
不成立
没有新增权重或训练出通用逆向能力,但会改变当前任务的完成方式
REA 能破解任意软件
不成立
原生分析仍受反编译器、目标混淆程度、运行环境和验证条件限制,官方案例也都是具体的小任务
REA 对逆向调查没有价值
也不成立
它能减少工具接入和结果整理工作,尤其适合智能体持续追查一个功能

项目自己的免责声明还明确写着:不支持绕过 DRM(Digital Rights Management,数字版权管理)、授权检查、反作弊和其他技术保护措施。热帖里的“破解任意软件”,连项目官方都没有这样承诺。

那我们自己平时读汇编,需要 REA 吗?

不需要。至少不是非有不可。

我们在 297 期( 【DLSS5】把“丁鱥”从 DLL 里挖出来:模型长什么样? )已经直接从 DLL(Dynamic-Link Library,动态链接库)里恢复网络结构、对照函数与权重,那个项目本来就是拿 Claude 和 GPT 做的,没有 REA。对这种程度的工作,大模型本来就能读反汇编、写辅助脚本,再逐块验证。

对我们来说,REA 不能代替阅读显卡汇编,不能替我们弄清数值截断、纹理采样和编译器差异,也不能保证智能体不编造。继续使用现有的反汇编工具、脚本和逐值验证流程,不会少了哪块“AI 逆向能力”。

它比较适合另一种情况:手头已有 Ghidra、Hopper 或 IDA,希望智能体能自己连续查询函数、交叉引用和调用图,不想再写一套连接脚本;或者面对 Electron 应用,想快速追踪一个功能穿过哪些模块;再或者调查很长,需要一套现成的证据编号和未知项记录。

所以最终答案是:作为逆向工具的统一接口和调查工作台,REA 有用;作为“AI 从此学会破解任意软件”的故事,它是吹牛。

有用的是工具链,不是魔法。真正费劲的阅读、判断和验证,一样也没消失。

━━━━━━━━━━━━━━━━━━━━

◆ 参考资料

━━━━━━━━━━━━━━━━━━━━

morluto/rea:README.md、docs/mcp-contracts.md,GitHub main 分支,2026-10-14 查阅;README 的 Star history 庆祝语为 200,000,当前星数另用 Shields.io 动态徽章复核。

rea-agents 6.4.0 npm 发布包:skills/reverse-engineer-anything/SKILL.md 及其 references、package.json、dist/contracts/promptContracts.js、dist/cliCommandNames.js、dist/application/SetupSkill.js、dist/server/createServer.js;SKILL 元数据 tool_count=170。

morluto/rea:docs/installation.md、docs/windows-ghidra-p0.md、docs/ida-provider.md、docs/reverse-engineering-tools.md、docs/android-analysis.md、docs/process-capture.md,关于安装方式、外部引擎与各平台运行边界,2026-10-15 查阅。

REA 官方案例:DX-Ball's sound-pan calculation、Solve a CTF flag checker、How Notion copies text and HTML,rea.tools,2026-10 查阅。

morluto/rea:DISCLAIMER.md,关于合法授权、运行边界及不支持绕过 DRM(Digital Rights Management,数字版权管理)、授权检查与反作弊的说明。

Vincent(@Vincent_AINotes):使用 Codex 试用 REA 后 OpenAI 账号被停用的自述及截图,2026-10-12;原图存于 assets/340/vincent-registration.webp 与 vincent-deactivated.webp。Hacker News 用户 DaSHacka 关于三次警告、进攻性安全研究和封号经过的后续说明(评论 50031271、50037113)。

OpenAI:Usage Policies 与 Terms of Use(恶意网络活动、知识产权、未经请求的安全测试、绕过平台自身的安全防护,以及逆向 OpenAI 自有服务的条款边界)。

━━━━━━━━━━━━━━━━━━━━

REA 递给 AI 的是逆向工具,不是逆向能力。

反编译伪代码是调查线索,汇编、调用关系和运行验证才决定结论能走多远。

会调用 Ghidra 不等于会逆向,就像会调用编译器不等于会写程序。

━━━━━━━━━━━━━━━━━━━━

// 靳岩岩的 AI 学习笔记 × Gemini 的浪漫 × GPT 的严谨// 2026年10月17日

相关学习资料