看上一个软件的功能,想知道它到底是怎么实现的——过去只有两条路:翻公开文档碰运气,或者自己打开反编译器逐行啃汇编。第一条靠命,第二条得有多年逆向功底垫底。现在多了第三条:把整个逆向调查交给 AI agent。上周登顶 GitHub Trending 的 morluto/rea(REA,全称 Reverse Engineer Anything)做的就是这件事:以 MCP 服务器加 CLI 的形态挂在你现有的编码 agent 上,让 Claude Code、Cursor 这类工具自己去拆二进制、追调用链、验证行为,最后交一份附证据与限制说明的结论。星数已到 84,088(GitHub API 2026-10-11 实证),MIT 许可,TypeScript 编写。仓库地址:github.com/morluto/rea。
对做兼容适配、做安全研究、或者单纯好奇"这个功能是怎么做到的"的开发者来说,这个项目的价值不在星数本身,而在它把一件原本高度依赖专家个人经验的事,第一次标准化成了 agent 可以执行的流程。当然,前提也得先说清:它有明确的边界,能干什么、不能干什么,项目自己写得明明白白,本文后面会逐条过一遍。
仓库地址与项目定位
REA 的安装方式一句话说完:npx rea-agents setup,跑完之后你的 agent 就多出一整套逆向调查工具。它支持的宿主 agent 名单相当长:Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等主流编码 agent 都在列。挂载方式走的是 MCP(Model Context Protocol)标准,也就是把逆向能力封装成一组工具,暴露给任何支持 MCP 的客户端——对 MCP 生态不熟悉的读者,可以看我们之前的 MCP 协议解析(mcp-protocol-server-resource);想自己动手写一个 MCP 服务器的话,另有完整开发 SOP(mcp-server-dev-sop)。
定位要先划清楚。REA 本身不是反编译器,它不直接翻译汇编指令,而是一个编排层:把 Ghidra、IDA、Hopper、JADX 这些成熟反编译工具挂到 agent 手里,由 agent 决定查什么、怎么查、什么时候收工。打个比方,各类反编译器是发动机,REA 是司机。这个定位决定了它的两类用户:一类是想让 agent 自动跑通"反编译、追踪、复现"循环的人;另一类是本来就有逆向基础、想把大量手工作业交给 agent 自动化的安全研究者。
项目时间线上有个小插曲值得交代:GitHub API 显示仓库 created_at 为 2026 年 4 月 14 日,而媒体报道称项目 10 月 7 日 launch,两说并存,本文不断言精确发布日。星数冲顶发生在上周,这个没有争议,具体数字下一节单独拆。
能力面:从原生二进制到智能合约
REA 覆盖的分析对象比多数人想象的宽,按 README 口径列一遍。
原生二进制是基本盘,走挂载 Hopper、Ghidra、IDA 的路线做反编译与函数级分析。JavaScript 和 Electron 应用是另一条主线,静态分析不依赖引擎,能恢复模块结构、imports、sourcemaps、路由和 IPC 通道——对桌面应用研究者来说这条线特别实用,不用启动运行时就能画出模块依赖图。其余覆盖面依次是:.NET 程序集、Android APK(经 JADX)、嵌入式固件(Binwalk、Unblob)、EVM 智能合约字节码(EVMole),外加 HAR 和 mitmproxy 抓包文件分析,以及基于 Chrome 系内核的网站行为调查。
这份清单的正确读法是"按对象选入口"。想弄清楚一个 Electron 应用的剪贴板行为,走 JS 静态路线;想拆一个老游戏的渲染函数,走原生二进制路线;怀疑某个 APK 有奇怪的网络调用,走 JADX 路线再配合抓包。agent 会根据目标类型自己挑工具链,这正是"编排层"定位的实际含义:人不再需要记住十几个工具各自的用法和参数,只需要用自然语言描述目标。
v6.0:四天三更背后的功能清单
2026 年 10 月 8 日发布的 v6.0 是星数冲顶的直接推手。按 v6.0 发布说明,新增能力包括:pwntools 离线 ELF 布局分析、crash inspection(基于 pwntools 加 pwndbg 的崩溃现场检查)、经 Ghidra 支持 Windows PE x86、LLDB 观察函数与 Objective-C 方法调用、Mach-O dylib 解析、历史网络抓包分析。同时带一个破坏性变更:MCP 文件系统输入必须使用绝对路径,已有部署脚本要跟着改。
值得注意的不是单个功能,而是发布节奏:v6.0 发布之后的 24 小时内连发 v6.1 到 v6.3 三个小版本。一个项目在 trending 榜第一的位置上还保持这种迭代密度,通常说明作者在快速消化新涌入用户踩出来的坑。反过来说,这个阶段接入的人也要做好频繁升级的准备——今天能跑的部署脚本,明天可能就要改一行。
星数演化:一周从一万到八万四
热度曲线值得单独拆开看,因为三个关键数字来自三个不同信源,口径必须分开标。10 月 7 日之后约 10,400 星,这个数出自媒体引用的 trending 数据;v6.0 发布时点约 47,884 星,出自第三方引用的 GitHub API;到 2026 年 10 月 11 日我们实证时是 84,088 星,单日新增 25,793,位居 trending 榜第一(GitHub API 2026-10-11)。从一万出头到八万四,一周翻了八倍。
怎么读这条曲线:增速如此陡的项目,星数里有多少"围观"成分要打一个问号。逆向工程是自带话题性的赛道,安全研究者会点星,吃瓜群众也会点星。8.4 万星说明关注度是真的,但不等于生产环境验证度——仓库 4 月建仓、10 月爆红,大规模真实使用的时间窗其实只有几天。把它当"值得跟进的新工具"看,别当"久经考验的老工具"用,这是本篇的基本态度。
Showcase 三例:数字怎么读
官方 showcase 给了三个案例,数字均出自 README 口径。最硬的是 DX-Ball:从声效调用入手,一路定位到一个 position-to-pan 函数,用 C 语言重构之后通过了 3,205 个原始 x86 用例的比对——那个函数只有 63 字节,重构版本与原版逐字节一致。这个案例的含金量在于"逐字节复现":不是功能相似,是行为完全等价,而且每一步都有原始二进制当裁判。
另外两例方向不同。Notion 案例走 Electron 路线,从渲染层的剪贴板调用追到 preload 脚本、IPC 通道、最后到主进程处理,完整画出一条跨层数据流;TH04 案例重构了东方 Project 弹幕游戏里的 ring 例程。三个案例合起来看,展示的是同一件事:agent 在证据链支撑下可以完成长链路的逆向调查,而不是单点问答。
也要提醒一句:showcase 是作者挑出来的最佳案例。3,205 个用例全过的前提,是目标函数足够小(63 字节)、行为足够确定。换成大型闭源软件的复杂模块,"逐字节复现"这种确定性没有任何项目能承诺——包括 REA 自己,它的边界声明里明确不承诺这一点。
边界与信任模型:先说清它不能干什么
README 里写得坦率的边界有三条。第一,不恢复原始源代码:它给你的是反编译产物、调用关系和带证据的行为结论,不是原作者仓库里那份能直接编译回原工程的源码。第二,不自动整克隆应用:让 agent"帮我复制一个 Notion"不在它的能力承诺之内。第三,每个结论附证据与限制:agent 给出的每个判断都要附带证据和局限性说明。这个设计明显是冲着压制大模型幻觉去的——逆向领域幻觉的代价极高,一个凭空捏造的函数名能让整场调查白做,还可能把人引向完全错误的方向。
信任模型也和常见的"上传云端分析"类工具不同:分析全部在本地运行,目标二进制不出本机。对一个天天接触闭源软件的工具来说,这个设计不是加分项,而是入场券——很多待分析的目标本身就不允许上传到第三方云 API,本地化是这类需求能成立的前提。
合规背景也得交代清楚:逆向工程在多数司法辖区,用于互操作、安全研究和学习的场景是合法的;但具体到每个目标软件的服务条款、版权许可和当地法规,责任在使用者自己。REA 的官方定位是调查研究,媒体报道时也把它与攻击性工具做了明确区分——识别与理解是研究,利用是另一回事。动手之前把这条线想清楚。
怎么接进你的工作流
给三条组合建议。
第一,环境隔离先行。让 agent 接触不可信的二进制之前,执行环境要先把隔离做好——我们之前横评过主流 agent 沙箱隔离方案(agent-sandbox-isolation-comparison-review),逆向场景建议直接套用其中本地沙箱的思路:让分析对象和 agent 主体分开跑,就算目标里有恶意行为也够不着宿主机。
第二,和代码安全审计拼图。REA 的能力面与 AI 代码安全审计有天然交集:静态扫描器看源码,REA 看二进制行为,两者拼起来才是完整攻击面视图。工具选型可以参考 AI 代码安全审计工具横评(ai-code-security-audit-tools-comparison-review);拿到审计结论之后怎么落地成可复用的流程,见代码库安全审计 SOP(ai-llm-codebase-security-audit-sop)。
第三,harness 视角。REA 的证据链设计,本质上是在回答"怎么信任一个 agent 的结论"这个通用问题——要求每个判断附证据与限制,等于把验证义务压回给 agent 自己。这个问题的系统性讨论,见 agent harness 横评(agent-harness-comparison-review)。
FAQ
Q1: REA 能把一个应用完整还原成源码吗?
不能。这是 README 明写的边界:不恢复原始源代码,也不自动整克隆应用。它给的是反编译产物、调用链分析和带证据与限制说明的行为结论。小体量、行为确定的目标(比如 showcase 里 63 字节的函数)可以做到逐字节复现(README 口径),但大型闭源应用做不到,也没有任何项目能承诺。
Q2: 用 REA 需要什么前置条件?
一个支持 MCP 的编码 agent(Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等在列),加一行 npx rea-agents setup 即可完成装配。注意原生二进制分析需要本机装有对应后端工具(Ghidra、IDA 或 Hopper),APK 分析依赖 JADX。v6.0 起 MCP 文件系统输入必须使用绝对路径,旧脚本需要同步修改。
Q3: 84,088 星这个数字可信吗?涨这么快正常吗?
星数本身经 GitHub API 实证(2026-10-11)。演化链是:10 月 7 日后约 10,400 星(媒体引用 trending 数据),v6.0 时点约 47,884 星(第三方引用 GitHub API),四天后到 84,088 星(本站 API 实证)。一周八倍属于异常热度,围观成分必然不低,建议把星数当"关注度指标"而不是"质量认证"来读。
Q4: 用 REA 做逆向工程合法吗?
逆向工程在多数司法辖区,用于互操作、安全研究和学习的场景是合法的,REA 的官方定位也是调查研究,与攻击性工具是两个类别。但具体到目标软件的服务条款、版权许可和当地法规,合规责任在使用者。识别与理解是研究,利用漏洞或绕过技术保护措施是另一回事,这条线要自己把住。
Q5: 有了 REA 还需要学 Ghidra 吗?
需要。REA 是编排层,把 Ghidra 这类反编译工具挂给 agent 使用;如果看不懂 agent 交给你的反编译产物,就没法判断结论质量,证据链也验不动。想手工逐函数啃硬骨头,Ghidra 仍是免费方案里的权威选择;想让 agent 自动跑"反编译、追踪、复现"的循环,才是 REA 的主场。两者是配合关系,不是替代关系。
收尾
REA 把逆向工程从专家手艺往 agent 标准流程推了实打实的一步,证据链设计和本地信任模型是它最值得同行借鉴的两处设计。但也要保持清醒:它被大规模使用才几天,长尾坑还没被踩完,showcase 的最佳案例更不能线性外推到所有分析目标。我们会持续跟进它在安全审计等实战场景的表现。