你不需要源码,你需要的是会提问:REA 把逆向分析交给了编码 Agent
MIT 开源的 MCP+CLI 工具 REA,让编码 Agent 调用本地逆向工具读懂没有源码的软件;只分析有权研究的软件,并给 Agent 设好权限边界。
大多数人以为,看懂一个软件需要它的源码。
这是个默认假设。
而且它正在变得过时。
源码只是软件的一种表达方式。编译好的二进制、打包好的 Electron 应用、一个 .NET 程序集、一个线上网站,同样是表达。只是这些表达方式过去只对少数人开放。
那少数人会用 Ghidra、IDA、Hopper。他们有耐心对着反汇编一行行读。
剩下的人只能猜。
本周在 GitHub 和 X 上被热议的开源项目 REA,想改变的就是这一点。
它到底是什么
据项目仓库页面,REA(morluto/rea)是一个 MCP 加 CLI 的组合,采用 MIT 许可。
它做的事情很朴素。把你的编码 Agent,比如 Claude Code、Codex、Cursor,接到你本机已有的逆向工具上。
然后你就可以问 Agent 一个问题。
不是"帮我写个函数",而是"这个 App 的某个功能是怎么实现的"。
据官方文档,REA 可以分析四类对象:原生二进制、JavaScript/Electron 应用、.NET 程序集和网站。原生分析会调用你已经装好的 Hopper、Ghidra 或 IDA。静态的 JS 和 .NET 分析则不需要这些引擎。
还有两点值得注意。
分析在本地跑。
结论会附上证据和局限。
第二点比看起来重要。我们稍后再说。
关于热度:据 GitHub API 在 10 月 14 日的查询,这个仓库约有 20.1 万星(实测数值 201118)。这个数字很大。但星数说明的是关注度,不是质量。别把两者混为一谈。
一个计算器的问题
官网给了一个例子。我觉得它比任何宣传语都更能说明问题。
问题是:Windows 计算器里,为什么 200 + 10% 等于 220。
很多人用过这个功能,却从没想过为什么。
据官网示例,REA 读取 calc.exe,找到处理 % 的函数,然后给出解释:加号后面的 %,取的是第一个数的百分比。也就是 200 的 10%,再加回 200。
这个示例基于 REA 4.1.0 和 Calculator 11.2508.4 x64。
流程可以概括成三步。
读 exe。
定位相关的库函数。
让 Agent 用人话解释。
注意这里发生了什么。
过去,回答这个问题的路径是搜索论坛、看别人的猜测,或者花一个下午学反汇编。
现在,路径变成了提一个好问题。
真正的稀缺品变了
这才是这个项目让我想写一篇长文的原因。
工具在把"读懂"的成本往下压。
当读懂的成本下降,稀缺的就不再是读懂的能力。
而是提问的能力。
你得知道该问什么。你得知道哪个行为值得深究。你得能判断 Agent 给出的解释是否站得住。
这是个反直觉的结论。工具越强,人越需要清楚自己在找什么。
否则你只会得到一堆看起来很专业的输出,以及一种虚假的掌控感。
这也是为什么"结论附证据和局限"这一点重要。
一个只给结论的工具,会训练你停止思考。
一个给出证据和局限的工具,会邀请你去核对。
前者让你变懒,后者让你变强。
上手的门槛
如果你想试,据官方入门文档,安装命令是:
npx rea-agents@latest setup
它会做几件事:注册 MCP,安装对应的调查 skill,备份你原来的配置,并且在应用改动前征求你的同意。
环境要求是 Node.js 22.19+、24.11+ 或 26+。
如果要用 Ghidra,需要 12.1.x 版本加 JDK 21。官方建议先跑一次自检:
npx -y rea-agents@latest doctor --provider ghidra --json
支持的客户端列表很长,包括 Claude Code、Codex、Cursor、Gemini CLI、Windsurf、OpenCode、Antigravity、Copilot CLI、VS Code 等。
"备份原配置"和"应用前征求同意"这两个设计,我会多看一眼。
它说明作者知道,往别人的开发环境里写东西,是需要被许可的行为。
关于边界,说清楚
逆向分析是一把双刃工具。这点不需要回避。
据项目社区的说法,REA 应该只用于分析你有权研究的软件,目的是学习与审计。
这不是客套话。
不同国家和地区对软件逆向有不同的法律规定。很多软件的用户协议也会对逆向分析作出限制。在动手之前,你需要自己确认:这个软件你是否有权分析,你的用途是否合规。
我能给的建议很简单。
分析你自己写的东西。
分析你被授权审计的东西。
分析明确允许研究的东西。
如果你不确定,那就先别动。
工具降低了技术门槛。它没有降低法律和道德的门槛。
权限是你自己给的
还有一件事,和 REA 本身无关,但和这类工具的用法有关。
据 X 上的热议汇总,同一周有一位开发者的 Opus 5.5 Agent 误删了开发数据库。
我不知道那件事的全部细节,也不打算替它补细节。
但它提醒了一个原则。
当你给 Agent 接上本地工具,你就是在给它权限。
而权限的边界,只能由你来设。
REA 的分析本身以只读为主,这是好的。但你的 Agent 不只连着 REA。它可能还连着终端、文件系统、数据库。
所以做三件事。
把逆向分析放进一个隔离的环境里。
只给 Agent 完成任务必需的权限。
对任何写入和删除操作保留人工确认。
这不是不信任 Agent。
这是对自己负责。
最后
很长一段时间里,"看懂别人的软件是怎么做的"是一种手艺。
它需要多年的积累,和一种近乎固执的耐心。
现在这门手艺的一部分,正在被打包成一个 MCP。
这不意味着手艺不再重要。
它意味着手艺的重心在移动。
从"会读"移到"会问"。
从"能做到"移到"知道该不该做"。
工具会继续变强。
你要做的,是让自己的判断力跟上它。
来源:GitHub:morluto/rea;REA 官网;入门文档;FAQ。星数为 2026-10-14 经 GitHub API 查询(201,206),会变动;标注为推断之处为作者观点;合规段为一般提醒,不构成法律意见。