10 月初,GitHub 上一个叫 REA(Reverse Engineer Anything)的仓库连着几天排在 Trending 第一。到 10 月 18 日,GitHub API 显示 morluto/rea 有 308,201 个 Star、77,992 个 Fork,npm 包 rea-agents 在 10-10 到 10-16 这一周下载了 30.7 万次。它做的事情是把 Ghidra、Hopper、IDA、JADX 这些逆向工具封装成 MCP 工具交给 AI 编程 Agent,让 Agent 在没有源码的情况下弄懂软件里某个功能是怎么实现的。
常见的误解是把它当成"AI 反编译器",或者以为装上就能整包克隆 App。下面按官方仓库和几份第三方测试,讲它的设计、实际效果和边界。
数据以 2026 年 10 月 18 日能查到的信息为准。文中命令按官方文档整理,本文未实测。
一、它是什么
| 项目 | 内容 |
|---|---|
| 名称 | REA,Reverse Engineer Anything,官网 rea.tools |
| 仓库 | morluto/rea,MIT 许可证,TypeScript |
| 时间线 | 仓库 2026-04-14 创建;npm 首个版本 2026-07-12;4.0.0 于 10-05、5.0.0 于 10-07 发布,随后冲上 Trending;当前最新 6.5.0(10-14) |
| 形态 | 本地 MCP 服务器 + CLI,外加一份给 Agent 的工作流说明(skill) |
| 支持的 Agent | setup 直接支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等;其他支持本地 MCP 的客户端可手动注册 |
| 分析对象 | 原生二进制、JavaScript/Electron、网站和抓包、.NET 程序集、Android APK、固件、WASM、EVM 字节码等 |
| 运行环境 | Node.js 22.19+、24.11+ 或 26+;Ghidra、IDA 要自己装,Hopper 可由 setup 经确认后安装 |
| 价格 | REA 免费开源;IDA、Hopper、JEB 等商业工具要自己合法购买,模型调用照常计费 |
几个热度数据:
- HN 上 10 月 10 日的帖子目前 808 分、339 条评论(HN Algolia);作者 7 月 14 日的 Show HN 只有 3 分。
- 第三方调研仓库 ringozzt/rea-research 记录的是:10 月 11 日约 7.9 万 Star,10 月 15 日约 24.7 万。这组数我只能核实到今天的终点值。
- 7 月到 10 月发了 30 多个版本,仅 10 月 5 日到 14 日就有 10 个,好几个带破坏性变更,比如 6.0.0 起 MCP 的文件路径参数必须是绝对路径。用之前先看 release notes。
二、原理和架构:它是接口层,不是新的反编译器
2.1 REA 自己不反编译
REA 仓库里没有新的反编译引擎,干活的还是老牌工具:
你的 Agent(Claude Code / Codex / Cursor ...)
│ 通过 MCP 调用(也可以走 CLI)
▼
┌─────────────────────────────┐
│ REA │
│ 统一的工具契约 + 证据记录 │
└─────────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
Ghidra/IDA JADX/ Chrome Binwalk/
/Hopper Apktool DevTools TShark ...
(原生) (安卓) (网页/ (固件/
Electron) 抓包)
官方架构图分为入口(MCP 服务器和 CLI)、应用层(会话、证据账本)、各工具的 provider 适配层和管理子进程的进程层。IDA 部分对接开源的 ida-pro-mcp。官网的分工说明很直白:REA 提供指令、反编译代码和调用关系,判断走哪个分支、算了什么、怎么重建,归 Agent。
2.2 为什么这样设计
逆向难的往往不在反编译这一步:
- 工具各自为战。 分析 Electron 应用要先解 asar、看 JS 模块、顺着 IPC 找 main 进程,再进原生
.node插件用 Ghidra 看,每步换一个工具。 - Agent 直接调这些工具很别扭。 Ghidra headless 启动慢、输出大,Agent 用 shell 硬调容易超时,或者被输出淹没。
- 结论没法复核。 Agent 说"这个按钮最后调用了某个函数",你不知道它是真看到了还是猜的。
REA 用 provider 适配层把十几种工具收进一套 MCP 接口;用会话管理处理启动和资源,比如 Ghidra 会话用独立的临时项目、限制 CPU 和内存、结束后删除,启动超时可以用 REA_GHIDRA_STARTUP_TIMEOUT_MS 调;第三点靠的是证据契约,我觉得这是它最值得看的设计。
2.3 证据契约
README 说每条结论都附带证据和局限说明。据第三方调研整理,每次工具调用返回结果、一个 evidence_id 和完整证据记录,分开写明观察到的、推断的和未知的部分。kingy.ai 的测试输出对得上:追踪一个导出功能时,结果列了 31 条观察事实、42 条推断事实,更大范围的语义图里还剩 44 个 unknown(25 个动态调用、19 个歧义目标)。
逆向结论最怕"看起来很对"。有了证据记录,Agent 的解释能一条条追溯回去,人至少可以抽查。
代价是输出很大:kingy.ai 测试里 1,648 字节源码对应约 907 KB JSON;GitTested 测试中 22 MB 的 Electron 归档生成了 692 MB 产物,只能改用摘要视图或写入文件。
2.4 粒度:一次讲清一个功能
官网的 Windows 计算器案例(REA 4.1.0)从汇编里找到乘、除两个命令 ID 的比较和常量 0x64(100),还原出 % 键的规则:乘除之后表示 current/100,加减之后表示 current×previous/100,所以 200+10% 等于 220。官方称结论和微软公开的计算器源码、测试用例一致。它做的是解释单个功能,没有把整个程序还原成源码。
三、对比
3.1 和其他方案比
| 方案 | 形态 | 覆盖范围 | 上下文开销 | 特点 |
|---|---|---|---|---|
| 传统人工逆向 | 专家 + IDA/Ghidra GUI | 取决于人 | 无 | 最可靠,但慢、门槛高 |
| GhidraMCP / ida-pro-mcp | 单引擎 MCP | 原生二进制 | 中 | 2025 年 3 月就有,Agent 接反编译器不是 REA 首创 |
| leanrea | 约 8 KB 的 skill,不用 MCP | Agent 直接用原生 CLI | 小 | 作者称同样任务更快更省 |
| 不加工具 | Agent 自己用 shell | 看模型能力 | 最小 | 小程序上已经很强 |
| REA | MCP + CLI + skill | 原生、JS、安卓、网页、固件等 | 大 | 覆盖最广,一键安装,带证据记录 |
GhidraMCP 和 ida-pro-mcp 的仓库分别创建于 2025-03-23 和 2025-03-25(GitHub API)。REA 的新意在覆盖面、安装体验和证据模型。
3.2 第三方测试
热度说明不了效果。目前能找到的独立测试,结论都比较克制。
GitTested(10 月 10 日):REA 6.2.0,Claude Code 2.1.295,claude-sonnet-5-5 medium effort,测 4 个去符号的小二进制(最大 264 KB)和 3 个 Electron 应用,每题按真实源码预先写 5 个事实点打分。
| 原生题指标 | 只用 shell 工具 | 要求用 REA | 自由选择 |
|---|---|---|---|
| 清单得分 | 74/75 | 73/75 | 71/75 |
| 重写的函数全部输入一致 | 5/5 | 5/5 | 4/5 |
| 中位 token | 94,663 | 233,951 | 119,869 |
| 中位时长 | 54.5 s | 63 s | 48 s |
Electron 部分用不用 REA 都是 57/60。评测方的结论是 "adopt-with-care":反编译结果可读,但小程序上普通工具已接近满分,REA 主要多花了 token(约 2.5 倍,算上缓存读取折扣,成本约 1.5 倍)。REA 给 Agent 加了 139 个工具,会话起始上下文从约 5,000 token 涨到约 11,000。
leanrea 作者的对比(竞品自测):Claude Code 无头模式 + Sonnet 5.5,4 个任务各跑 3 次。REA 组 75/75、627 秒、2.17,作者据此称"快 38%、省 35%"。他也承认样本只有 3 次、测试机没装 Ghidra。数据来自竞品作者,看个方向即可。
kingy.ai(10 月 8 日,10 月 17 日更新):用 REA 6.0.0 只走 CLI,分析官方的 Electron 笔记导出示例,追踪出从按钮点击到写出 notes.csv 的完整路径,再另写一个 CSV 格式化器,14 个用例和原版逐字节一致。作者说明这不能证明它在不透明的二进制上同样准确,也不代表能整包克隆。
放在一起看:准确率上 REA 没有明显优势,成本明显更高。它的价值应该在大而杂的目标上,比如跨 JS、IPC、原生插件的 Electron 应用,或者需要 Ghidra 又不想手动折腾的场景,而这类目标恰好还没有像样的公开测试。
四、适用场景和局限
4.1 适合的场景
- 分析自己的或已获授权的软件:接手没有源码的遗留二进制,弄清某个算法,再用新技术栈重写。
- 互操作:搞清某个文件格式、本地协议或导出格式,让自己的工具能读写。
- 安全研究:恶意样本分析、漏洞研究、CTF,这些都在 DISCLAIMER.md 列出的正当用途里。
接入方式(按官方文档,本文未实测):
# 交互式安装:选择要接入的 Agent,确认计划后才写配置
npx rea-agents@latest setup
# 只看计划不落地:只配 Codex 和 Cursor,不装 skill
rea setup --client codex --client cursor --skill=false --dry-run
# 健康检查
rea doctor --json
也可以只用 CLI:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
4.2 局限
- 不恢复源码,不整包克隆。 产出是"某个功能怎么工作"的证据和解释,重建靠 Agent 逐个功能写。
- 加壳、混淆、反调试仍是硬边界,目前公开的成功案例,目标基本没有混淆。静态关系也证明不了代码在运行时一定会执行到。
- 平台差异:Windows 下的 Ghidra 支持官方标为实验性。
- 不是沙箱。 SECURITY.md 原话是 "This is not a sandbox"。打开不可信的二进制,等于让本地反编译器用你的用户权限去解析它,分析恶意样本请放进虚拟机。
- 本地分析不等于数据不出本机。 结果会交给 Agent,再发给模型服务商。分析公司内部软件前先确认数据政策。
4.3 法律和协议风险
DISCLAIMER.md 明确不支持:绕过 DRM、授权校验和反作弊,开发外挂,复制专有软件的受保护代码和素材,规避 AI 服务商的使用政策。它还写了,软件能公开下载、文件在你手上,不等于你有权做任何操作。
- 很多商业软件的用户协议禁止反向工程,各地法律对"为互操作而逆向"的例外也不同,商用前请咨询法务。
- 逆向得到的类源码输出不给你任何权利,分析报告也一样。
- 看过原始实现再重写,算不上 clean-room,kingy.ai 的测试也特别说明了这一点。
- IDA、Hopper、JEB 要用正版,REA 明确不认可破解版和盗用的授权。
五、我的判断
- REA 火,主要因为门槛降到了"一句 npx"。 以前要会装 Ghidra、会看伪代码,现在一句提示词就能让 Agent 开工。30 万 Star 里大部分应该是想试试的人。
- 最有价值的是证据契约,不是工具数量。 能把 Agent 的结论追溯到具体函数和指令,比多接一个反编译器重要。写 Agent 工具的人可以借鉴。
- 对熟手来说,它目前是省事,谈不上更准。 两份测试里,小目标上它和裸 Agent 准确率差不多,成本更高。熟悉命令行的人用 leanrea 这类轻方案可能更划算。
- 逆向的成本在快速变低。 以前保护实现细节,很大程度上靠"读懂太费劲"。客户端里的逻辑应当默认会被看懂,密钥、授权判断和核心算法该放服务端的就放服务端。
- 还缺大目标上的公开测试。 现有案例都是小程序。在那之前,可以先拿官方示例(恐龙游戏、计算器、Notes 导出)练手,再在自己有权分析的软件上试。
参考资料
- REA 官方仓库 morluto/rea(含 README、SECURITY.md、DISCLAIMER.md、releases):github.com/morluto/rea
- REA 官网:rea.tools/
- npm 包 rea-agents:www.npmjs.com/package/rea…
- GitTested,rea: reverse engineering tools for agents(2026-10-10):gittested.com/reviews/mor…
- Curtis Pyke(Kingy AI),Reverse Engineer Anything with AI: REA Tested on a Notes Exporter(2026-10-08,10-17 更新):kingy.ai/blog/revers…
- aicodeking/leanrea(竞品作者的对比测试):github.com/aicodeking/…
- ringozzt/rea-research(第三方技术调研,Star 增长数据来源):github.com/ringozzt/re…
- Hacker News 讨论:news.ycombinator.com/item?id=500…
- LaurieWired/GhidraMCP:github.com/LaurieWired…
- mrexodia/ida-pro-mcp:github.com/mrexodia/id…