REA 30 万 Star 背后:让 AI Agent 无源码读懂软件的 MCP 逆向工具链

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 仓库里没有新的反编译引擎,干活的还是老牌工具:

text 复制代码
            你的 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 为什么这样设计

逆向难的往往不在反编译这一步:

  1. 工具各自为战。 分析 Electron 应用要先解 asar、看 JS 模块、顺着 IPC 找 main 进程,再进原生 .node 插件用 Ghidra 看,每步换一个工具。
  2. Agent 直接调这些工具很别扭。 Ghidra headless 启动慢、输出大,Agent 用 shell 硬调容易超时,或者被输出淹没。
  3. 结论没法复核。 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 秒、 3.36;leanrea组74/75、388秒、3.36;leanrea 组 74/75、388 秒、 3.36;leanrea组74/75、388秒、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 列出的正当用途里。

接入方式(按官方文档,本文未实测):

bash 复制代码
# 交互式安装:选择要接入的 Agent,确认计划后才写配置
npx rea-agents@latest setup

# 只看计划不落地:只配 Codex 和 Cursor,不装 skill
rea setup --client codex --client cursor --skill=false --dry-run

# 健康检查
rea doctor --json

也可以只用 CLI:

bash 复制代码
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 明确不认可破解版和盗用的授权。

五、我的判断

  1. REA 火,主要因为门槛降到了"一句 npx"。 以前要会装 Ghidra、会看伪代码,现在一句提示词就能让 Agent 开工。30 万 Star 里大部分应该是想试试的人。
  2. 最有价值的是证据契约,不是工具数量。 能把 Agent 的结论追溯到具体函数和指令,比多接一个反编译器重要。写 Agent 工具的人可以借鉴。
  3. 对熟手来说,它目前是省事,谈不上更准。 两份测试里,小目标上它和裸 Agent 准确率差不多,成本更高。熟悉命令行的人用 leanrea 这类轻方案可能更划算。
  4. 逆向的成本在快速变低。 以前保护实现细节,很大程度上靠"读懂太费劲"。客户端里的逻辑应当默认会被看懂,密钥、授权判断和核心算法该放服务端的就放服务端。
  5. 还缺大目标上的公开测试。 现有案例都是小程序。在那之前,可以先拿官方示例(恐龙游戏、计算器、Notes 导出)练手,再在自己有权分析的软件上试。

参考资料

相关推荐
张伽蓝ErosJane1 小时前
AI Agent 平台搭建必读:Anthropic 多智能体实验的三个工程警示
ai编程
猛犸象限2 小时前
【CJMP】用仓颉跨端做游戏(下):94 关能过、6 关卡住,问题最后出在我们自己这边
ai编程
柯南46682 小时前
【AI工程师精讲】13:微调排查:训练损失很好看,效果却不行
人工智能·ai编程
9i编程2 小时前
4. 带 AI 从零搭低代码平台·踩坑实录:回头补 change-2,欠的账一条条还
人工智能·openai·ai编程
张伽蓝ErosJane2 小时前
AI 软件开发维护期:Claude 388 PR 拆解与适用边界
ai编程
编程火箭车2 小时前
MySQL 拥抱 AI:向量、RAG、AutoML 全进了数据库
数据库·mysql·ai编程·向量数据库·rag·automl·mysql9
峰哥AI手记2 小时前
金融合规问答助手-RAG查询路由落地
python·aigc
子昕2 小时前
你还在用 deepseek-flash?背后的模型,其实已经换了
ai编程
buddyMe智能助手3 小时前
长任务拆给谁?把专门化智能体存成可复用、会增长的「选项」
人工智能·深度学习·安全·机器学习·aigc