REA登顶GitHub:让AI智能体"拆开"任何软件的逆向引擎
REA登顶GitHub:让AI智能体"拆开"任何软件的逆向引擎
过去两周的 GitHub Trending 榜首,被一个名字霸榜——REA(Reverse Engineer Anything,逆向工程任何东西)。这个由开发者 morluto 于 10 月 7 日开源的工具,上线不到一天就冲上热门榜第一,累计 Star 逼近六万。它干的事很直接:把你的编码智能体(Claude Code、Codex、Cursor)接到一套逆向分析引擎上,让 AI 像资深逆向工程师一样,把原生二进制、Electron/JS 应用、.NET 程序集乃至整个网站"拆开",还原出功能逻辑并给出证据。
这标志着 Agent 工具链的一个微妙转折:过去半年,GitHub 上的爆款几乎全是"如何生成代码"的助手;而 REA 证明了**“如何读懂已有代码”**同样是刚需,且能催生一个全新的 MCP(Model Context Protocol)品类。
一、从"单点封装"到"逆向工具链标准化"
市面上早有把 Ghidra 或 IDA 搬到模型面前的 MCP server,但绝大多数只有几百行——本质是把 decompile_function 这类调用转发给引擎,再把结果贴进对话框。REA 完全不是这个量级。
据第三方拆解,REA 的发布包注册了 139 个 MCP 工具;其源码树在测试之外约有 16.7 万行 TypeScript,另有约 11.9 万行测试代码——这不是一个脚本,而是一套工程。它内部维护着三条桥接:
- 一段跑在 Hopper 解释器内的 Python 桥(约 1,020 行),通过 Unix 域套接字对外服务;
- 一段跑在 Ghidra 无头模式内的 Java 桥(3,321 行),用
DecompInterface反编译、遍历ClangCaseToken还原 switch 分支; - 一个约 1,100 行 C++ 的 Node-API 扩展,用于 Windows 上的原生分析。
更关键的是它的供应商中立设计。无论底层是 Hopper、Ghidra 还是 IDA,MCP 侧始终使用同一套操作命名(procedure_pseudo_code、xrefs、read_bytes、analyze_function)。这让上层的 Agent 无需关心具体引擎,也便于在分析失败时静默切换工具——而不会悄悄改变结论。
二、覆盖全靶标的分析能力
REA 的覆盖面远超"反编译二进制"这一单一场景:
| 靶标类型 | REA 返回内容 | 依赖环境 |
|---|---|---|
| 原生二进制(Mach-O/ELF/PE) | 伪代码、汇编、字符串、符号、调用与引用 | Hopper / Ghidra / IDA |
| JavaScript / Electron | 模块、import、source map、路由、IPC 关系 | Node.js + npm |
| .NET 程序集 | 元数据、成员、CIL 中间语言 | 内置 TS 解析器 |
| Android APK | 包/类/方法查询 | JADX(调用方提供) |
| 固件 | Binwalk/Unblob 分区与提取 | Binwalk + Unblob |
| EVM 字节码 | 选择器与可变性分析 | EVMole |
| 网站 | CDP 页面检查、Playwright 场景、源码图 | Chrome / Playwright |
安装方式对开发者极其友好:npx rea-agents@latest setup 会自动探测本机安装的智能体(Claude Code、Codex、Cursor、Gemini CLI 等十余种),打印出它打算做的配置改动,备份原文件,经你批准后再注册 MCP server 并写入工作流 skill。
1 | { |
三、技术亮点:可追溯的"证据链"
REA 最耐人寻味的设计,是它为每一个分析结果都附带一份内容寻址的证据记录(Evidence id)。每条结论除了返回结果本身,还携带一段 SHA-256 规范化 JSON 计算出的 ev_ 开头 ID——来源、位置、分析引擎与版本全部被锁定。
这意味着:如果 Agent 给出的解释听起来"过于自信",你可以把 Evidence id 反查回去,核对其底层依据是否真实存在。你无法在保留 ID 的同时悄悄篡改结果。这一机制直击当前 MCP 生态的软肋——模型常常在缺乏证据的情况下编造调用链,而 REA 用密码学手段把"结论"和"出处"焊死在一起。
一个直观的例子:有人让 REA 分析 Windows 计算器为什么 200 + 10% = 220。REA 反编译出 % 处理器的分支逻辑,Agent 据此还原规则——在 + 后取第一个数的百分比(10% of 200 = 20),而在 × 后则转为小数。它还交叉核对了微软公开源码中的常量定义,让结论可被验证而非凭空推断。
四、影响与未来展望
REA 的爆火释放了几个信号:
- Agent 工具链正从"生成"扩展到"理解"。当 AI 能可靠地读懂任意存量软件,代码审计、CTF 竞赛、漏洞挖掘、反爬逆向、闭源库行为分析等场景将被大幅重塑。
- "可解释性"正在被工程化。 Evidence id 这种把结论与出处绑定的思路,有望成为下一代 MCP 工具的标准契约——不只是返回数据,还返回数据的"发票"。
- 生态位开始分化。 REA 本身是 MIT 许可,但它驱动的工具各有版权:Ghidra 免费(Apache-2.0),Hopper 与 IDA 为商业软件。在 Linux 上,REA 的无人值守路径甚至围绕 Hopper 演示版构建——这给 CI/CD 场景留下了授权层面的问号。
对开发者而言,REA 的价值不在于它能否替代资深逆向工程师,而在于它把"拆开一个黑盒并讲清楚原理"这件事,从需要数天的人工分析,压缩成一句自然语言提问 + 一份可追溯的证据。当 Agent 开始具备"读懂世界"的能力,代码侧的生成只是上半场,理解侧的竞争才刚刚开局。
⚠️ 使用提醒:REA 应只指向你有权拆解的软件;原生深度分析依赖 Hopper/Ghidra/IDA,其中部分为商业授权;运行时捕获会以你的用户权限执行目标程序,请审慎评估副作用。
