Skip to content

开源工具评测:REA——让 AI 编码 Agent 读懂二进制、自动复刻你想要的任何功能 ​

你是不是也遇到过这些情况:

  • 在某个 App 里看到一个「离线搜索」「一键抠图」之类的功能,特别想搬到自己的产品里,可手里只有编译好的成品,没有源码。
  • 想学学某个开源或商业软件的高性能实现,打开一堆二进制文件却像看天书。
  • 想用 IDA、Ghidra 逆向分析,结果被密密麻麻的汇编和陡峭的学习曲线劝退。
  • 网上搜了一圈,不是零散教程,就是「照着截图猜实现」,费时费力还不靠谱。

传统做法要么是硬啃汇编、要么靠猜,效率低、门槛高、还容易出错。今天要介绍的 REA(Reverse Engineer Anything,逆向分析一切),就是来解决这个问题的——它把一整套逆向工程工具接进你的 AI 编码 Agent,你只需要说一句「帮我看看这个功能怎么实现的」,它就能在没有源码的情况下把应用翻一遍,给出带证据的结论,甚至帮你把同款功能写进你的项目。

一、项目简介:REA 是什么 ​

封面:从混乱到有序(示意)

REA 是作者 morluto 用 TypeScript 写的一个开源项目,遵循 MIT 协议,核心定位一句话:"Reverse engineer anything with agents, from app behavior down to native binaries."(用 Agent 逆向分析一切,从应用行为一路追到原生二进制)。

它本质是一个 MCP 服务器 + CLI,把 Hopper、Ghidra、IDA 这些专业的逆向分析引擎统一封装起来,让 Claude Code、Claude Desktop、Codex、Cursor、Gemini CLI、Windsurf、Devin、OpenCode、VS Code、GitHub Copilot CLI 等主流编码 Agent 都具备本地逆向能力。其整体热度在 2026 年 10 月初集中爆发,据多家媒体最新报道 Star 数已快速逼近 8 万(该数字仍在暴涨、一日一变,这里取的是媒体口径,具体以仓库实时为准)。

维度说明
项目定位把逆向工程变成编码 Agent 的一项本地能力
作者 / 协议morluto / MIT
技术栈TypeScript,Node.js 22+
交付形态MCP 服务器 + CLI(rea-agents)
核心引擎自带封装,接入 Hopper / Ghidra / IDA
分析范围原生二进制、JS/Electron、.NET、网站、Android APK、固件
运行方式全部本地执行,不上传云端

它的核心设计理念是 "理解,而不是复制":官方明确声明不声称恢复原始源码、也不会自动克隆一个应用,而是通过 Decompile(反编译)→ Understand(理解)→ Recreate(在你的项目里复刻) 三阶段,帮你把看到的优秀功能「看透」后,做出自己产品的版本。

二、为什么值得用:REA 解决的核心问题 ​

GitHub 项目界面示意

逆向工程本来是安全研究者的专业技能,普通人根本碰不了。REA 最大的价值在于把这件事的门槛降到了一个 AI 指令的级别:

  1. 让普通开发者也能逆向。你不需要精通汇编、不需要会操作 IDA,只要会跟你的编码 Agent 说话,就能让它替你完成反编译、追踪、理解的全过程。
  2. 从「看到功能」到「拿到代码」一步到位。同样是想要一个同款功能,别人还在对着反编译窗口发呆,你已经让 Agent 把实现原理摸清、并把可运行的版本写到项目里了。
  3. 省下大量研究时间。以前分析一个未知功能可能要耗上几天,现在 Agent 能系统地排查、给出路径和证据,几分钟到几十分钟给你一个可复现的结论。
  4. 本地运行,隐私可控。你的目标应用不会被上传到任何云端分析服务,敏感项目也能放心分析。

三、核心优势对比:REA vs 传统逆向方案 ​

对比维度REA手动 IDA / Ghidra纯靠 AI 猜实现
上手门槛极低,一句话指令高,需懂汇编与工具低但不可靠
是否需要 API Key否,全本地否视工具而定
是否本地运行是是不一定
数据隐私本地,不上传本地可能上传
结论可信度带证据链与局限说明高但靠人判读低,常胡编
是否产出代码能帮你复刻到项目需自己写能但质量不稳
覆盖面二进制/JS/.NET/网站/APK/固件偏原生二进制不固定
价格开源免费(引擎可另选)IDA 贵 / Ghidra 免费看服务商

相比传统工具,REA 的几个差异化亮点尤为突出:

  • 一套工具打通全品类:原生二进制、Electron、.NET、网页、APK、固件,不用再为每种格式切换不同工具链。
  • 结论可追溯:每条分析结论都附带证据和局限说明,盲猜的逆向结论比没有结论更危险——这一点恰恰是逆向场景的底线。
  • Agent 原生友好:为 MCP 而设计,能保持跨应用调查上下文,不用每个问题都重新开始。
  • 开箱即用:npx rea-agents setup 一条命令完成配置,可自动安装 Hopper 或接入已有 Ghidra。
  • 安全透明:分析在本地沙箱化执行,卸载时只清除 REA 自己的数据,不碰你的其他配置。

四、手把手实操:从安装到跑通一次逆向 ​

核心优势信息图(示意)

环境准备 ​

REA 对系统有一定要求,先对照检查:

  • 系统:macOS 12+,或 Ubuntu 24.04+ / Fedora 41+ / 64 位 Arch Linux
  • Node.js:22.x(≥22.19)、24.x(≥24.11)或 26+
  • npm:REA 不强制特定版本
  • 分析引擎(可选,用于原生二进制):Hopper(可自动安装)或你自己已有的 Ghidra 12.1.4 + JDK 21

第一步:安装 ​

推荐用 npm 全局安装,再运行 setup 完成配置:

bash
npm install --global rea-agents
rea setup

setup 会检测你已装的 Agent、分析工具,把每一条将要做的改动列给你确认后再生效,并会自动备份原配置。它支持给 Claude Code、Codex、Cursor、Gemini CLI 等多个 Agent 批量接入。也可以用官方安装脚本一键装:

bash
curl -fsSL https://raw.githubusercontent.com/morluto/rea/main/install.sh | bash

装完跑一下自检,确认环境就绪:

bash
npx -y rea-agents@latest doctor

第二步:接入你的 Agent ​

rea setup 完成后重启你的 Agent,配置即生效。REA 会给选中的 Agent 挂上 MCP 工具和一套引导式逆向工作流。想单独在终端用也行,rea 命令本身就是一个完整的 CLI。

第三步:基础用法——让 Agent 分析一个应用 ​

最简单的用法,就是直接对你的 Agent 说:

text
理解一下 Notes 应用里的「离线搜索」是怎么实现的,把证据给我,
然后用 TypeScript + SQLite 在我的项目里复刻一个类似的版本。

Agent 会调用 REA 的工具去反编译、追踪、取证,最后既给你分析结论 + 证据,又把代码写好。终端里也可以手动分析:

bash
rea analyze /Applications/Notes.app

静态分析一个 JS/Electron 应用(不解执行、直接扒结构):

bash
rea analyze /path/to/releases/app.asar --json
rea analyze-javascript-application /path/to/releases/app.asar --json

第四步:进阶用法——证据包与快照 ​

REA 支持把分析结果固化为证据包和快照,便于复用和审计:

bash
rea evidence-import /path/to/evidence/bundle.json
rea evidence-export /path/to/evidence/bundle.json /path/to/canonical.json
rea compare /path/to/left.json /path/to/right.json
rea analyze /path/to/app --snapshot /path/to/analysis/app.json
  • 证据包:规范化导入/导出,用于团队审计与对比。
  • 快照:同一目标在同一参数下可直接命中缓存,不必每次重新启动分析引擎。
  • 参考源码:rea import-reference-source /path/to/source 可以把旧源码树作为历史参考,与当前观察结果区分存放。

第五步:输出产物说明 ​

  • Evidence 证据:每次分析都会产出带来源、局限说明的证据,可在会话中导出为标准 JSON。
  • 快照文件:.json,本地保存、仅属主可读写,重跑命中即复用。
  • 反编译伪代码:注意是伪代码而非原始源码,会明确标注哪些被解析到、哪些未能解析。

常用命令速查表 ​

命令作用
npx rea-agents setup一键安装并配置(推荐)
rea doctor环境与依赖自检,--json 输出结构化诊断
rea analyze PATH分析目标(二进制/ASAR/目录)
rea decompile反编译指定部分
rea analyze-javascript-application PATH静态分析 JS/Electron 应用
rea import-reference-source PATH导入历史源码作为参考
rea evidence-import / export导入 / 导出规范化证据包
rea compare A B对比两份证据
rea capture-process捕获受控进程行为
rea uninstall移除 REA 注册与托管 skill(保留引擎与其他 MCP)

五、适用场景 & 落地案例 ​

运行效果示意

  1. AI 技术博主 / 独立开发者:在别人的应用里看到一个好功能想借鉴,让 Agent 逆向分析并给出同款实现,直接推进自己的产品迭代。
  2. 安全研究与漏洞分析:在不执行不可信样本的前提下,静态分析原生二进制与固件,追踪可疑代码路径并保留证据链。
  3. 竞品功能调研:产品经理或逆向工程师想知道竞品某个交互/算法的实现思路,用 Agent 系统化排查,避免靠截图瞎猜。
  4. 学习与教学:想弄懂软件底层原理的开发者,可以让 Agent「翻译」出可读的伪代码与调用路径,配合证据学习逆向方法论。

六、客观优劣总结 ​

应用工作台示意

✅ 优势

  • 门槛极低:一句话让编码 Agent 完成逆向,普通人也能用。
  • 覆盖面广:原生二进制、JS/Electron、.NET、网页、APK、固件一网打尽。
  • 本地运行、隐私安全,不上传目标应用。
  • 结论带证据与局限说明,可信可追溯,不搞「拍脑袋」。
  • 支持十余种主流编码 Agent,生态兼容好。
  • MIT 开源、快速迭代,社区活跃。

⚠️ 局限与注意事项

  • 不恢复原始源码,输出为伪代码/近似结果,某些细节需人工复核。
  • 原生二进制分析仍依赖 Hopper(商业授权)或自行安装 Ghidra。
  • 平台支持有限:主要是 macOS 和特定 Linux 发行版,Windows 为实验性。
  • Node.js 版本要求较高(22+)。
  • 项目处于爆发期、版本迭代极快,存在「热度跑在成熟度前面」的稳定性风险。
  • 首次 Ghidra 查询触发导入与自动分析,可能超过客户端默认请求超时,需了解恢复机制。

⚠️ 安全与合规提醒:逆向工程他人软件可能违反其服务条款、知识产权及当地法律。请仅对你拥有权限的软件、开源软件或授权研究目标使用 REA,遵守相关许可与法规,避免用于恶意用途。

七、结语 ​

REA 把「逆向工程」从少数安全专家的专长,变成了一句你就能发号施令的 Agent 能力。它让你「看到喜欢的功能 → 弄懂它怎么工作 → 做出自己的版本」这条路变得前所未有地平顺,而且全程本地、结论带证据,不靠猜。哪怕你目前不常做逆向,把它装进开发环境,也是给编码 Agent 补齐了一块很硬的能力拼图。

快速上手:

bash
npm install --global rea-agents
rea setup
# 重启你的 Agent,然后告诉它你想理解哪个功能

仓库地址:https://github.com/morluto/rea

如果你也常被「想抄功能却看不懂」困扰,不妨装上试试。觉得有用就给作者点个 Star,让这个刚爆火、还在飞速迭代的项目被更多人看到。

📖本文阅读--次|📊全站访问--次|👥访客--人