今天(2026 年 10 月 10 日)的 GitHub 日榜第一名是 morluto/rea,当日新增约 2.57 万星。按仓库页在同一时间的取数:62,226★、12,571 个 fork、MIT 协议;建仓日期写着 2026 年 4 月 14 日,最新版本 v6.3.0 发布于昨天(10 月 9 日)。它是这份榜单上少见的"作者真在天天发版"的项目:10 月 3 日到 10 月 9 日这一周,它从 v3.2.0 一路发到 v6.3.0。

一句话定位:它不重画逆向界面,它把逆向的操作台交给 Agent

仓库 README 的第一行把话说得很直:REA 是"一个覆盖二进制、应用与运行时行为的逆向 MCP"。它不打算成为第二个 IDA,而是把一台能自己查文件的逆向工作台包成 MCP server 加一套命令行,让你已经在用的编码 Agent 去调它。

  • 你给它什么:一个本地目标——可执行文件、Electron/JavaScript 应用目录、.NET 程序集、APK、固件包、网站、HAR 抓包、崩溃录音,或者一个要跑的进程。
  • 它还你什么:带证据的结论——伪代码、汇编、字符串、符号、调用与引用关系,以及它没查出来的未知项。
  • 谁在干活:你的 Agent 拿这些证据解释行为、动手写一版实现、自己测一遍;工具始终跑在你本机。

它瞄准的痛点很具体:你在别人家的产品里看到一个功能想要,以前要么请人逆向、要么自己啃。现在可以让 Agent 带着工具去查,而且被要求把证据和限制一起交出来。

为什么是今天火

  • 一天连发三个版本。发布页上,10 月 9 日一天落了 v6.1.0、v6.2.0、v6.3.0;再往前,10 月 8 日 v6.0.0、10 月 7 日 v5.0.0、10 月 6 日 v4.1.0。累计 34 个 release,节奏基本是"一天一个中等版本",这在个人维护的工具里很少见。
  • 能力是一条条接上去的。10 月 6 日那次 v4.1.0 一次接进三样东西:Android 静态 APK 分析接 headless JADX、固件分析接 Binwalk 与 Unblob、Ghidra 支持原子函数标注编辑;再往前一周,补了 16 位 DOS 分析与 Windows 下的 Ghidra 支持。
  • 分发面已经铺开。技能平台上有一个名为 reverse-engineer-anything 的技能;官方 MCP Registry 里能按 io.github.morluto/rea 搜到并直接装 npm 包;README 被翻译成 19 种语言。4 月才建仓的项目长成这样,通常意味着用户量先于名声——这也解释了它为什么今天冲到第一。

它能查什么:12 类目标,门槛差得很远

安装文档与 README 给了一张目标表,我按"你还要额外准备什么"重新排了一遍:

目标你能拿到什么额外要求
原生二进制伪代码、汇编、字符串、符号、调用与引用Hopper / Ghidra / IDA 三选一
离线 ELF 布局节、段、原始符号与重定位、静态缓解候选Linux x64 + 自带 pwntools
EVM 字节码分发选择器、字节偏移、推断参数与可变性本地 raw/hex 载体
录制的 Linux 崩溃各线程寄存器、信号、映射候选自带 pwntools,可选 GDB/pwndbg
JavaScript / Electron模块、导入、source map、路由、IPC、原生插件关系只要 Node.js 与 npm
网站页面结构、脚本、网络观察、按需截图一个 Chrome 系浏览器
保存的网络抓包请求、响应、暴露的载荷与源码位置HAR;Linux 下 mitmdump
.NET 程序集元数据、CIL 指令、声明的原生依赖、构建比对无(纯静态读文件)
Android APK清单声明、类、反编译方法、引用链headless JADX + 完整 JDK 17+
固件分区、提取结果与交给原生分析的接力Linux 下 Binwalk / Unblob
包与资源文件清单、摘要、plist、Apple bundle 结构无
进程行为终端输出、交互、退出码、文件系统观察、两次运行对比Linux/macOS 的原生 PTY

门槛最低的入口藏在中间两行:JavaScript/Electron 与 .NET 这两条线不需要任何逆向引擎,装上就能问。真正吃机器的是原生二进制那条——Hopper 是 macOS 上的商业软件,Ghidra 免费但基于 JVM、吃内存,IDA 又是另一套价格体系。

它是怎么把结论"做实"的

这个项目少见的一点,是把"不许编"写进了结果契约:

  • 结果本身就是证据。返回里带产物身份、源码位置、观察、推断与尚未解决的问题;v6.2.0 的 release note 写明,成功结果即规范化证据,调用方要保留原始文件与观察,不允许补造身份或事实。
  • CLI 和 MCP 是同一套流程。终端里可以敲 rea analyze、rea search、rea function、rea decompile、rea xrefs、rea trace,也可以 rea evidence-export、rea compare 去比对两份证据包。默认输出是一种紧凑格式 TOON,给程序消费时加 --json。
  • 快照复用。结果能存成 snapshot:当目标字节、操作、参数、引擎与设置全部一致时,下一次查询直接复用缓存的精确结果,命中连引擎进程都不启动。快照只存本地,权限仅属主可读。
  • 退出码可判定。0 表示操作完成(可以带部分证据和警告),1 表示没完成,128+N 表示被信号杀掉。写脚本时不用猜。

怎么用起来:两条路,一条零门槛

第一条路:装进你的 Agent。 前提是 Node.js,而且官方要求写得很死——22.x(≥22.19)、24.x(≥24.11)或 26+,23 与 25 不支持。用 nvm 的话,这一条会先卡住你。

1
npx rea-agents setup

setup 会先列出它打算改哪些客户端配置,你审阅通过后才动手,并且给已有配置做备份;它还会问要不要顺手装 Hopper。完成后重启 Agent。目前它认得 14 个客户端:Claude Code、Claude Desktop、Codex、Cursor、Gemini CLI、Windsurf、Devin、OpenCode、Antigravity、GitHub Copilot CLI、Command Code、VS Code、Grok Build、OMP。Grok Bot 是例外——它的连接器挂在账号侧,setup 不会替你写配置,得你在 Bot 里手动加一个名为 rea 的 MCP。

第二条路:先不碰二进制。 想零成本试试它到底能不能干活,拿一个已解包的 Electron/JavaScript 应用目录或 .asar 文件:

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

这条命令不需要 Hopper、Ghidra 或 IDA。要读原生二进制再换 rea analyze /abs/path/program --provider ghidra,引擎得另外装好。

给不认 setup 的客户端手接 MCP,形状是这样:

1
{"mcpServers": {"rea": {"command": "npx", "args": ["-y", "rea-agents@6.3.0", "mcp"]}}}

注意版本号这一格:官方明确要求持久注册钉在一个确切版本上,rea setup 也是这么写的。换版本要重跑 setup 迁移旧注册,否则就会撞上下面第一条门槛。

和同类比,它把哪一段做成了产品

做法谁在干活证据链代价
Hex-Rays / Ghidra / Hopper 原界面你自己记,自己核买断或免费,但要会
通用 Agent + 截图点击Agent弱,结论常没出处便宜,但容易一本正经胡说
商业逆向平台平台方有订阅制,按席位算
morluto/rea你的 Agent,工具在本地契约里强制带证据与未知项MIT 免费,环境门槛在你这边

它没有发明新的分析能力——伪代码终究是 Ghidra、Hopper 或 IDA 给的。它买的是把操作台接进 Agent 的循环,并且让每条结论可追溯。这和本站之前拆过的两条线是一路的:CLI-Anything 把任意软件的界面翻译成 Agent 能敲的命令,OpenShell 把 Agent 关进沙箱;REA 算第三块拼图——让 Agent 去看懂一个不属于你的产物。它对 DSH 生态也留了位置,仓库 topic 里挂着 dsh、dsh-plugin 与内核同名的 cordis,和本站写过的 DSH 与 Hermes 分工 是同一套插件概念。

三条硬门槛:装之前先想清楚

① 发版快到反常,而且自己承认会破坏兼容。 v6.2.0 的 release note 里有一句原话:项目的 always-bump-minor 政策包含破坏性变更,v6.2不是向后兼容的承诺。翻成人话——小版本号跳一格,你的调用可能就要改。已列出的破坏性变更包括:v6.0.0 起,MCP 的文件系统输入必须是绝对路径(./app 会被拒,得写 /home/analyst/app);v5.0.0 起,Android 分析强制要求完整 JDK 17+ 且带编译器模块;v6.3.0 起,缺少生产者账目与事务身份的历史抓包会被直接拒收。想要稳定,就把版本钉死,并定期重跑 setup 迁移旧注册。

② 环境门槛不低,小机器玩不动。 Node 22.19+ / 24.11+;原生分析要有 Hopper(商业、macOS)、Ghidra(免费但吃内存)或 IDA;Android 要 JDK;固件要 Linux 下的 Binwalk/Unblob;历史源码导入在原生 Windows 上直接返回不支持,得进 WSL。如果手上只有一台 1–2G 内存的小 VPS,Ghidra 这条线基本可以放弃——它更适合当作业机上的一件工具,而不是塞进小机器常驻。

③ “本地分析"不等于不离开本机。 官方 FAQ 的说法是目标在本地分析,但结果会交给你的 Agent,而模型提供方有自己的数据政策;运行时捕获是以你的用户权限去跑目标程序,不是沙箱。仓库底部的免责声明也写明白了:只用于合法的逆向研究,授权与合规由使用者自己负责,并且声明项目没有发行任何代币。这一条得自己掂量。

我的判断:谁该上、谁再等等、谁别碰

该上的:① 正在给自己产品补功能的开发者——官方 showcase 就是这个用法:DX-Ball 的音效声像计算被还原成 C,3,205 个原始 x86 用例全过、编译出的 63 字节函数逐字节对上;TH04 那台 PC-98 老游戏的 16 位子弹角度算法也被还原出来和当年的编译器输出做了比对。② 做安全研究与 CTF 的人——它连 EVM 字节码和固件都接进来了。③ 想学逆向但怕门槛的学生——先从 JavaScript/Electron 与 .NET 两条免费线走,拿到"带证据的结论"之后再上 Ghidra。

再等等的:① 只想"看到功能就抄一个"的人——抄之前先看许可和法务,REA 帮你看懂,不帮你免责。② 手上只有小内存机器的玩家——先把作业机准备好。③ 想靠它做内容副业的人——它产出的是技术结论,不是素材。

别碰的:① Node 还停在 23 或 25 的人,先升级或降到受支持的分支;② 不愿意让本机文件路径进模型上下文的人;③ 指望"装上就自动给答案"的人——它的第一步是逼你说清楚要查什么,查不出来它会明确告诉你未知项。

顺带一提:逆向是把打断点、复现、再打断点重复一百遍的久坐活,腰先撑不住的话,这篇人体工学椅怎么选按体型分了档。

本文由拾光札记编辑部整理,勘误请联系我们