想抄一个功能却看不懂它怎么实现?这个 MCP 让 AI 逆向到二进制(45 万星)
github监控器 · 2026-11-10 · 约 3597 字 · morluto/rea
你看到一个功能很妙,想知道它怎么实现的;你接手一个没人维护的项目,想搞懂某段逻辑为什么这么写。你现在只能靠猜。
REA 干的事很直接:把"逆向"变成一个 MCP,让 agent 帮你从行为一路挖到二进制,而且要求它给出证据——哪一行、哪个函数、哪次调用。
45 万星,每天涨 2135 星。我把 README、package.json 和它的三个 showcase 看完了,下面按"装 → 用 → 会卡在哪"讲。
一、你的真实处境
场景一:你在做产品,竞品有个交互特别顺,你想知道它怎么做的。打开 DevTools 看半天,只能看到压缩过的代码。
场景二:你接手一个老项目,某个数值算出来总是差一点。没人知道为什么,注释写着"别动这里"。
场景三:你在学一个开源库的设计,README 讲的是"怎么用",你想知道的是"为什么这么设计"。
这三件事的共同点是:答案不在文档里,在实现里。而读实现这件事,以前只能靠人一行行啃。REA 的定位就是把这件事交给 agent,并且强迫它交代证据。

二、它是什么:一个 MCP,不是又一个 GUI
REA 全称 Reverse Engineer Anything。官方一句话:"One MCP for reverse engineering across binaries, applications, and runtime behavior."
关键词是 MCP。它不是给你一个逆向工具界面,而是给 agent 一个"逆向能力"。装上之后,你在 Claude Code、Codex、Cursor 或者任何支持 MCP 的客户端里直接说人话,它去调 REA 的工具。
package.json 里有个字段说明了它的身份:
"name": "rea-agents"
"mcpName": "io.github.morluto/rea"
"version": "6.8.0"
"license": "MIT"mcpName 是标准 MCP 标识,意味着它遵循 MCP 的注册规范,能被通用客户端识别。版本已经到 6.8.0,说明迭代了很久,不是新项目。
三、装:一条 setup 命令
官方推荐路径:
npx rea-agents setup这条命令做的是"检测你的 agent 并注册"——它会把 REA 作为 MCP server 写进你对应客户端的配置里。跑完你重启一下 agent 客户端就能用。
如果你的客户端不认自动注册,用全局安装 + 手动配:
npm install --global rea-agents
rea --help
# 然后按 rea --help 打印的配置片段,
# 粘到客户端的 mcpServers 里升级用:
rea update三个提醒:
setup只需要跑一次,换客户端了再跑一次;- 全局安装的
rea命令和npx rea-agents是同一个东西,前者快、后者永远是新版; - 装完先在终端里跑
rea --help,能打印帮助就说明装对了,再去配客户端。

四、终端里直接用:三条命令覆盖八成场景
不一定非要通过 agent。REA 本身是个 CLI,可以直接调。
最常见的用法是分析一个 JS 应用:
npx -y rea-agents@latest analyze-javascript-application \
/absolute/path/to/app --json注意三个点:路径要绝对路径;--json 让它输出结构化结果,方便你再喂给别的工具;-y 是 npm 的免确认。
在 agent 里用,就直接说人话。README 给的例子是:
Understand how search works in the Notes app, show me the evidence,
and build a similar feature for my project.这句话包含了 REA 最想要的使用姿势:要证据 + 要落地。只说"帮我看看这个 App 怎么实现的",你会拿到一堆描述;说"给我证据,然后照这个思路给我实现一个",你才拿到能用的东西。
五、它到底能分析什么
README 的"What you can analyze"这一段我整理成表:
它特别强调"runtime behavior"这一层。这一层是纯静态分析给不了的:静态分析告诉你"有这个函数",运行时告诉你"这个函数被调了、参数是这些"。
六、它怎么保证不是瞎编
这是我最在意的一点。LLM 讲逆向最大的问题是幻觉——它会编一个看起来很合理的调用链。
REA 的做法是把"证据"变成必须项:结果里带位置信息,能指回具体文件、行号、函数。它的 showcase 展示的也是这个路子:
- DX-Ball:重建一个声盘的碰撞计算——数值从哪来、怎么算;
- Notion:追 Electron 的剪贴板桥——JS 层怎么把数据递到原生层;
- TH04:还原一个 DOS 游戏的弹幕环计算——纯二进制的数值路径。
这三个例子的共同点是:都是"一个具体数值/一条具体链路",不是"整体架构概览"。这说明它的强项是收窄问题,不是泛泛而谈。
所以提问方式很重要。别问"这个 App 怎么实现的",问"这个列表滚动时,第 3 屏的缩略图是什么时候开始加载的,证据给我"。问题越窄,证据越硬。
七、最被低估的用法:造 RL 环境
README 里有一大段讲 "Build RL environments with REA",很多人会跳过,我觉得这是重点。
它的思路是:拿一个你能控制的 web 应用,让 REA 去摸清每个操作的效果,然后自动生成一个可交互的环境描述。README 给的原话大概是:
Use REA to build an RL environment from my test web app at
http://127.0.0.1:3000.
Cover listing, creating, renaming, and deleting folders.
You may create and remove test folders. Leave existing data unchanged.
Save it in a folder named my-env.这段话里有两句是安全约束:可以创建和删除测试文件夹、不要动已有数据。写 prompt 的时候把边界说清楚,比事后擦屁股便宜。
为什么这个用法值钱?因为训 agent 最缺的不是模型,是环境。一个能自动探测、能自己描述动作空间的环境生成器,等于把造环境的成本砍掉一大半。

八、五个坑,按踩到的概率排
- 假仓库。 README 用醒目块写了:只从
morluto/rea、rea.tools或 npm 上的rea-agents拿,同名仓库 + 抄来的 README 不代表官方。装之前核一遍来源; - 相对路径。
analyze-*系列要绝对路径,写./app会报找不到; - MCP 没生效。 装完不重启客户端,工具列表里就是没有。先重启再怀疑别的;
- 问题太宽。 问"整体架构",它会给你一篇听起来对但没法验证的散文。问具体数值、具体链路;
- 拿它拆有版权保护的东西。 这是合规红线,不是技术问题,见下一节。
九、合规红线:能做什么,别做什么
这条我必须单独说,因为工具本身不设边界。
REA 的 README 里有 Disclaimer 一节,态度是"工具中立,责任在你"。这句话在法律上是成立的,在现实里也是——出事的从来不是工具。
十、为什么它能涨 2000 星一天
我的判断有三条:
- 它把"MCP"这个抽象概念变成了具体能力。 大部分 MCP 是"把某个 API 包一层",REA 是"把一整套方法论包一层",含金量不同;
- 它解决的是真痛点,而且以前没有便宜方案。 逆向工具一直有,但要么贵、要么难、要么只做静态;
- 它的输出形态对 agent 友好。
--json+ 证据链,等于天生适合被别的 agent 消费。
第三条最容易被忽略。一个工具能不能进 agent 生态,不取决于它多强,取决于它的输出能不能被下一个环节直接用。
十一、地址与版本汇总
rea-agents | |
io.github.morluto/rea |
版本(截至 2026-11-10):
包名: rea-agents
版本: 6.8.0
MCP: io.github.morluto/rea
许可: MIT
安装: npx rea-agents setup最后一句实在话:这类工具的价值不在"能拆别人",在于它逼你把问题问具体。你问不出具体问题的时候,它也帮不了你——这不是它的缺陷,是逆向这件事的本质。
AI 实战导师 / 企业 AI 落地顾问 / 智能体工程师,17 年跨界、15,000+ 小时 AI 实操、20+ 套已交付工作流。 看完整履历海报 → skills 实验室 →
发表评论: