返回博客列表

25 万 Star 的 REA:看上哪个功能,让 AI Agent 直接逆向过来

2026-10-15T22:30:00+08:00
REA逆向工程MCPAI Agent开源项目Claude Code

25 万 Star 的 REA:看上哪个功能,让 AI Agent 直接逆向过来

又双叒叕出一个爆火项目?这次它把门槛最高的手艺交给了 Agent。

你大概有过这种时刻:用一个 App,发现某个功能做得特别妙,想知道它是怎么实现的——然后发现没有源码,网上也没有现成分析,只能作罢。

传统解法叫逆向工程:把二进制丢进 IDA 或 Ghidra,读懂汇编和伪代码,再手工拼出业务逻辑。这门手艺的门槛高到什么程度?光是认全反汇编界面上的东西,就够新手啃上几个月。

REA(Reverse Engineer Anything)给出了另一种可能:把 Hopper、Ghidra、IDA 这些专业引擎包装成 MCP 接口,交给 Claude Code、Codex、Cursor 这样的 AI Agent 调用。你用自然语言问一句"这个 App 的搜索功能是怎么实现的",Agent 自己调用工具,深入到字节码和汇编层面,带着证据链回来,再照着写一个类似的实现放进你的项目。

项目 2026 年 4 月 14 日创建,截至 10 月 15 日已经积累 254,259 Star、63,880 Fork。半年 25 万 Star,这个增速放在整个 GitHub 的历史上都算罕见。

本文提纲

  1. REA 是什么:一个 MCP 服务器,不是逆向平台
  2. 最聪明的设计:只出证据,不下结论
  3. 能分析什么:23 类目标,从网站到固件
  4. 上手:三条命令就够
  5. 三个 Showcase:AI 逆向的真实上限
  6. 冷静判断:它做不到什么

一、REA 是什么:一个 MCP 服务器,不是逆向平台

先纠正一个常见误解。REA 没有重新发明反编译引擎——那件事的工程量太大,Hopper、Ghidra、IDA 各自积累了十几年。它做的是另一件事:把这些引擎的能力标准化,暴露给 Agent。

项目信息 值
作者 morluto
创建时间 2026-04-14
Star / Fork 254,259 / 63,880(截至 2026-10-15,GitHub API 实测)
语言 TypeScript
许可证 MIT
npm 包 rea-agents,当前 6.4.0
官网 rea.tools

理解它的定位,关键是看清这层分工:逆向分析所需的专业工具链早就存在,真正缺的是一层能让 Agent 自主调用这些工具、并把结果组织成可信证据的接口。REA 补的就是这一层。

这也解释了它为什么以 MCP 服务器的形态存在,而不是又一个逆向 GUI。2026 年的开发者日常已经泡在 Claude Code、Codex、Cursor 里,让分析能力长进 Agent 生态,比再造一个独立平台合理得多。npx rea-agents setup 一条命令,setup 会列出即将写入的改动,经你确认后才修改配置,并自动备份原有配置,目前官方支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等 Agent,其他客户端可以走手动 MCP 注册。

二、最聪明的设计:只出证据,不下结论

很多"AI 分析工具"的思路是让模型直接告诉你"这段代码在做什么"。问题我们都知道:模型会幻觉,而且你没法验证它没幻觉。

REA 的架构选择完全不同——它自己不下结论。Agent 通过 MCP 调用 REA,REA 返回的是发现(findings)和支撑每个发现的证据:反汇编的某几行、字符串引用、模块依赖关系。真正的推理、解释、代码生成,全部留给调用它的 Agent。

graph LR
    A["You: ask about a feature"] --> B["Agent: plans the investigation"]
    B --> C["REA MCP server"]
    C --> D["Engines: Hopper, Ghidra, IDA, JADX, Binwalk"]
    D --> E["Findings plus evidence"]
    E --> F["Agent: explains, implements, tests"]
    F --> G["Working code in your project"]

这个分工有两层好处。一是可审查性:Agent 给出的每个结论都能追溯到具体的反汇编行,你觉得可疑就自己去核对;二是职责单一:REA 保持工具本色,不用在 prompt 里跟模型的幻觉倾向搏斗。

静态 JS 和 .NET 分析只读取你提供的文件,不运行目标;涉及运行时行为的采集(比如网站交互、进程观察)会以你当前用户权限真实运行或与目标交互,每种场景的指南都会说明具体影响范围。这个"静态优先、运行时按需"的分层,让大多数轻量分析完全不碰运行时风险。

三、能分析什么:23 类目标,从网站到固件

README 里那张分析目标表是全项目最硬核的部分。挑有代表性的几行:

目标 返回内容 依赖
Native 二进制 伪代码、汇编、符号、调用关系 Hopper / Ghidra / IDA
JavaScript / Electron 模块、导入、Source Map、路由、IPC、Native 插件关系 Node.js + npm
网站 页面结构、脚本、网络观察、截图 Chrome 系浏览器
.NET 程序集 元数据、CIL 指令、声明的 Native 依赖 无(纯静态)
Android APK Manifest、类、反编译方法、引用关系 Headless JADX + JDK
Go / Rust 二进制 编译器版本、模块、crate 依赖 内置静态解析,无需安装 Go/Rust
EVM 字节码 调度选择器、字节偏移、参数推断 Linux x64 本地离线分析
固件 分区、提取结果、Native 分析交接 Binwalk / Unblob
抓包文件 请求、响应、暴露的 Payload、来源代码位置 HAR / Fiddler SAZ
SQLite 数据库 表、列、索引、触发器、选中行 本地快照
进程行为 终端输出、文件系统观察、运行对比 PTY

全部算上是 23 类,还包括 WASM、Flutter、adb 连接的真机、JEB 工程、逻辑信号录制(sigrok-cli)这些偏门场景。覆盖广度的意图很明显:一个 MCP 尽可能覆盖所有逆向场景,而不是只做某一类专精分析。安全研究者、CTF 玩家、想理解竞品的产品开发者,都能在里面找到自己要的工具。

引擎侧是可插拔的。原生二进制分析需要 Hopper、Ghidra、IDA 三选一,setup 可以在你批准后代为安装 Hopper,Ghidra 和 IDA 直接用现有安装,此外还支持调用方自备的 GNU objdump 和 Rizin。而 JS、.NET、Flutter 这类静态分析内置完整解析能力,完全不依赖第三方引擎——哪怕你没有任何逆向工具链,也能先用这部分起步。

两个实用细节:大文件分析可以调 REA_GHIDRA_STARTUP_TIMEOUT_MS 或 REA_HOPPER_STARTUP_TIMEOUT_MS 延长引擎启动时限;Windows 上的 Ghidra 支持目前还是实验性。README 有 19 种语言版本,中文读者可以直接看简体中文版。

四、上手:三条命令就够

前置要求只有一个:Node.js 22.19+、24.11+ 或 26+,外加 npm。Linux 上做 Ghidra、JADX 或固件分析,需要 PATH 里有 procps 兼容的 ps。

第一步,配置 Agent:

npx rea-agents setup

第二步,用自然语言提问:

Understand how search works in the Notes app, show me the evidence,
and build a similar feature for my project.

把 Notes 换成你的目标应用,把 search 换成你想理解的功能。第三步,不经过 Agent 也可以直接在终端跑:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

输出包含模块、依赖导入、Electron 进程边界和对应证据。常用的话就全局安装 rea 命令,更新用 rea update——这个项目发版很勤,遇到 bug 先更新再报 issue。

还有一个容易被忽略的细节:rea-agents 的 npm 发布走的是 GitHub Actions OIDC trusted publisher,带 SLSA provenance 签名;README 里专门警告"仓库名相似或 README 被复制不代表下载渠道官方"。火到需要防假冒仓库,这个细节比 Star 数更能说明问题。

五、三个 Showcase:AI 逆向的真实上限

rea.tools 的 showcase 页面有三个完整案例,每个都有可验证的交付物。这是我对这个项目从"怀疑"转到"认真"的关键。

DX-Ball:重建音效声像算法

从一次音效调用追进 position-to-pan 辅助函数,检视指令,把不完整的伪代码补成 C。重建结果通过了 3,205 个原始 x86 测试用例,63 个编译后函数字节完全一致。不是"差不多能用",是二进制级别的一致。

Notion:追踪 Electron 剪贴板桥接

从 renderer 的剪贴板 API 出发,穿过 preload 和 IPC 进入 main process,看清楚富剪贴板格式怎么处理。做 Electron 开发的人应该知道这条链路有多难从外部看清。

TH04:恢复 DOS 游戏的子弹环计算

检视 PC-98 游戏的 16 位指令,恢复固定角和瞄准角的计算逻辑,再把重建的 C++ 与历史编译器输出对比。仓库 topics 里甚至有个 touhou 标签——TH04 正是东方 Project 的早期作品。

三个案例横跨 x86、Electron、16 位 DOS,共同点是有明确的事后验证手段(字节对比、指令比对),而不是"Agent 说它看懂了"。

六、冷静判断:它做不到什么

分析质量的上限取决于底层引擎。REA 不提升伪代码质量,它只是让 Agent 能驱动这些引擎——Ghidra 反编译不动的混淆代码,REA 也一样没办法。

原生分析依赖商业或重型引擎。Hopper 是商业软件,首次运行会弹 demo/激活对话框;IDA 付费且不便宜;Ghidra 免费但吃内存。很多目标类型只在 Linux 上验证过(pwntools、TShark 4.x、sigrok-cli),macOS 和 Windows 用户要先查文档确认自己的场景被支持。

运行时采集有真实副作用。静态分析不碰目标,但进程观察、网站交互这类能力会用你的用户权限真实运行目标。分析来路不明的二进制之前,先想清楚这句话的分量。

法律边界写在项目的 DISCLAIMER.md 里:合法研究、教育、互操作性、软件保护,以及分析你拥有或已获授权的软件。"看上哪个功能就让 Agent 抄过来"听起来很爽,但抄什么、抄多少,授权问题得自己把关。企业合规审计也别指望它替代专业审计公司——它是研究工具,不是合规背书。

还有一个诚实的观察:25 万 Star 的增速难免让人怀疑刷量。我查了仓库数据:907 个 open issues、多贡献者的稳定提交记录(作者 morluto 一千多次提交,N0zoM1z0 五百多次)、Trendshift 官方趋势徽章、真实可复现的 showcase——不像刷出来的样子,但 Star 数字本身参考意义有限,项目质量看 showcase 和文档就够了。


参考文档与链接

试过了?评论区说说你逆向了什么。还没试?收藏起来周末折腾一个。


作者: itech001
来源: 公众号:AI人工智能时代(the-ai-era)
网站: https://www.theaiera.top/ 关注每日最新AI新闻和技术博客,主页有更多的文章的AI 技术参考:https://www.theaiera.top

本文首发于 AI人工智能时代,转载请注明出处。

分享给朋友