夜雨聆风学习资料网

ARTICLE · 1197778

你电脑里的每个软件都要被迫开源了:REA 让 AI Agent 逆向任何,从应用行为拆到二进制

你电脑里的每个软件都要被迫开源了:REA 让 AI Agent 逆向任何,从应用行为拆到二进制

看到一个 App 里做得很妙的功能,想搞明白它是怎么实现的——没有源码,怎么办?过去你得是逆向工程老手:开反编译器、读汇编、啃伪代码,几天起步。

现在有一条命令可以让 AI Agent 替你干这活:npx rea-agents setup。装好后对 Claude Code 说一句"弄明白这个 App 的搜索是怎么实现的,给我看证据,然后在我的项目里实现一个类似的",它就会真的去拆那个 App——从应用行为一路拆到二进制层面,每一步都给你看证据。

这个项目叫 REA,今年 4 月才创建,如今 GitHub star 已经突破 27 万,是今年增长最快的开源项目之一。

项目名称

REA(Reverse Engineer Anything),一句话定位:一个把 AI Agent 接入逆向工程世界的 MCP 服务器。它把原生二进制分析、JavaScript/Electron 应用解剖、.NET 程序集检查、Android 逆向、固件提取、网络包分析等一整套能力封装成标准 MCP 工具,让任何支持本地 MCP 的 Agent——Claude Code、Codex、Cursor、Gemini CLI、Grok Build——都能直接调用。

主仓库以 TypeScript 编写,MIT 协议,官网 rea.tools 提供图解教程和真实案例研究。同一个工具箱也有 CLI 形态,不开 Agent 也能在终端里直接用。REA 官方反复强调的一点是:所有分析都在本地进行,你的应用不会被上传到哪里。

核心能力

REA 的工具清单覆盖了逆向工程的几乎所有常见战场:

  • 原生二进制
    :通过 Hopper、Ghidra 或 IDA 返回伪代码、汇编、字符串、符号、调用与引用关系——深挖到指令级别;
  • JavaScript / Electron 应用
    :恢复模块结构、导入关系、source map、路由、IPC 边界和原生插件依赖,这是很多人第一次"看穿"Electron 应用的入口;
  • 安卓全家桶
    :APK 静态分析(清单声明、类、反编译方法)走无头 JADX,真机或模拟器分析走 adb,Flutter 应用能提取 Dart 快照指纹和引擎构建信息,资源文件交给 Apktool 解码;
  • 专项能力
    :.NET 程序集(纯静态,零依赖)、Go 二进制(内嵌编译器版本与模块)、Rust 二进制(cargo-auditable 依赖图)、WASM 工件(解码出 WAT)、EVM 智能合约字节码(分发选择器与参数推断)、SQLite 数据库结构、固件提取(Binwalk/Unblob)、HAR/SAZ 网络抓包、pcap 包分析、逻辑信号记录,甚至进程行为观察;
  • 证据链交付
    :每个结论都附带产生它的证据和已知局限——Agent 拿到的不只是"搜索功能大概是这么实现的",而是指向具体模块、具体函数的证据包。

最能说明实力的是官网三个案例:把 DX-Ball 游戏的声音声像算法从汇编完整重建为 C 代码,通过全部 3,205 个原始 x86 测试用例、63 个函数字节逐一复现;追踪 Notion 的 Electron 剪贴板桥,从渲染层一路跟到主进程;还有从 16 位 DOS 游戏的指令里恢复出弹幕角度计算,并与历史编译器输出对比验证。

环境与安装

基础要求只有一条:Node.js 22.x(≥22.19)、24.x(≥24.11)或 26+,外加 npm。其余依赖按分析目标按需配置。

安装一行命令:

npx rea-agents setup

选择你要接入的 Agent,审查它提出的配置变更(会备份已有配置),批准后重启 Agent 即可——setup 会注册 MCP 服务器并安装配套的工作流指令。

分目标的额外要求:原生二进制分析需要本机有 Hopper、Ghidra 或 IDA 之一(setup 可以在征得同意后代装 Hopper);JavaScript/Electron 和 .NET 静态分析不需要任何原生分析引擎;Linux 上做原生分析需要 procps 兼容的 ps;安卓分析需自备 JDK 和 JADX。注意:IDA Pro、Hopper、JEB 这类商业工具必须自行合法取得授权,REA 不提供任何许可或激活。

实操主路径

装好之后,逆向工程的日常变成了一段对话:

  1. 提出问题
    :告诉 Agent 目标和分析意图,比如官方示例——"弄明白 Notes 应用里搜索是怎么工作的,给我看证据,再给我的项目做个类似的";
  2. Agent 调查
    :Agent 通过 MCP 调用 REA 工具检查目标、追踪相关代码,REA 返回带证据的发现;Agent 据此追问下一层,反复收敛;
  3. 落地实现
    :Agent 用拿到的伪代码、模块关系和未知项清单,解释行为、写出实现并跑测试验证;
  4. 终端直用
    :不开 Agent 也行——npx rea-agents@latest analyze-javascript-application /path/to/app --json 直接解剖一个 Electron 应用目录或 ASAR 包,输出模块、导入、Electron 边界及证据;常用的话 npm install --global rea-agents 装个 rea 命令。

迭代很快是这个项目的特点,遇到问题先 rea update,再用 setup 输出的命令刷新 Agent 注册即可。

关键实现

REA 能成为 Agent 逆向事实标准,靠的是几个关键设计:

  • Evidence-first 契约
    :所有 MCP 工具返回的结果都强制携带证据和局限说明,工具目录(tool catalog)是自动生成的契约文档——Agent 不会拿到"黑箱结论",幻觉空间被压到最小;
  • Provider 抽象层
    :Hopper、Ghidra、IDA、Kuna、Rizin、GNU objdump 都是可插拔的分析后端,同一套工具协议适配不同引擎;大二进制还能用 REA_GHIDRA_STARTUP_TIMEOUT_MS 之类的参数调启动超时;
  • 静态与运行时分轨
    :静态分析(JS、.NET、ELF 布局)只读文件不执行目标;运行时捕获(进程行为、网页观察)则以用户权限运行并明示影响范围——安全边界写进了文档;
  • 本地优先
    :目标应用不出本机,分析结果直接返回给 Agent;唯一的外部数据策略是 Agent 模型服务商自己的;
  • 生态卡位
    :MCP + Agent Skill + CLI 三种形态共用同一工作流,skills.sh 上可直接安装技能版,这是它能在半年内冲到 27 万 star 的产品侧原因。

怎么开始

三步上手:

  1. 确认 Node.js 版本达标,跑 npx rea-agents setup 接入你的 Agent;
  2. 没有原生分析引擎的话,先从 JavaScript/Electron 或 .NET 目标玩起——零额外依赖,效果立竿见影;想深入二进制再装 Hopper(免费版够用)或接入已有的 Ghidra;
  3. 去 rea.tools 的 Guides 和 Showcase 跟着真实案例走一遍,尤其是 DX-Ball 声像重建那个——看完你就知道"带证据的逆向"能做到什么精度。

最后必须划重点:REA 官方的使用立场非常明确——它面向合法的研究、教育、互操作性、软件保存,以及你拥有或获授权分析的软件。拿它去破解别人的商业软件,既违反项目立场,也违反法律。

开源地址

GitHub 仓库:https://github.com/morluto/rea

官网与案例:https://rea.tools

当 Agent 学会了读汇编、拆 IPC、追抓包,"理解一个软件"这件事的门槛被永久地改写了。

相关学习资料