REA 从零开始详细教程:有了这个项目,任何收费软件的功能,你都可以自己实现了

一句话:REA 不是又一个反编译器,而是一个 MCP 服务——它把 Ghidra、Hopper、IDA 这些老牌逆向工具包成你的 AI 助手能直接调用的接口。你负责提问,它负责在本机取证,Agent 负责解释或重写。装它,只需要一条 npx 命令。

22.2 万
GitHub Star(截至 2026-10-14 实测)

3 天
从数千星冲到 12 万星,涨速罕见

24 类
官方 README 列出的可分析目标类型

1 条命令
npx rea-agents setup 就能接进助手

你有没有过这种时刻:用着某个 App,发现某个功能做得特别顺——离线搜索秒出结果,或者同步机制丝滑得不像话。你想在自己产品里也搞一个,可这个 App 没开源、也没文档,你连它怎么实现的都不知道。

去问 AI 助手?它没见过这份代码,只能凭常识瞎猜,猜得还特别自信。

过去遇到这种事,只有一条路:去学逆向工程。找一款反汇编器,啃它的 API,在一堆字符串和符号里翻来翻去,手动追调用图,在不同工具之间来回倒腾。这是一门硬功夫,绝大多数应用开发者根本没时间去学。

REA 换了个思路:把这活儿交给你的 AI 编程助手。

一、REA 到底是什么:不是反编译器,是给 AI 装的「插头」

先说清楚它不是什么:它不是那种双击就能用的软件,也不是一个「输入软件就自动吐出源码」的魔法按钮。

按官方 README 的原话,REA(Reverse Engineer Anything)是「通过一个 MCP 服务,逆向分析二进制文件、应用程序和运行时行为」。它跑在你自己的电脑上,通过 MCP 协议把分析能力挂给 AI 助手。

MCP 可以理解成「给 AI 装的插头标准」。这个服务装好之后,你的 AI 助手就多了一项能力:能去检查一个软件的内部是怎么搭的。

整个链路大概是这样——你问一句「看看某软件的搜索功能是怎么做的」,AI 通过 MCP 把这句话转给 REA,REA 去分析那个软件,把发现交回来,AI 再拿这些发现解释,或者干脆写一个类似的实现。

图片[1]-REA 从零开始详细教程:有了这个项目,任何收费软件的功能,你都可以自己实现了-二楼后座

逆向最怕的,是被一个自信的错误答案带偏。所以 REA 给出的每条结论都带着证据:会告诉你这段逻辑是从哪个文件、哪个位置来的;同时它也会明确说,哪些地方它还没弄明白。有了证据,至少你能核查一遍。

它火到什么程度

这个项目是 2026 年 4 月 14 日建仓的,到 10 月已经在 GitHub 上积累了两百多万次收藏量级里最猛的那一档——22.2 万 Star、5.5 万 Fork(2026-10-14 实测)。中文技术媒体在 10 月 12 日的报道里写的是「三天狂揽 12 万星」,拿它跟年初引爆全民热潮的 OpenClaw 对比:后者爆发第三天累计新增 6 万星。

为什么这么火?因为它撞上了一个所有人都有体感的痛点。InfoQ 那篇报道里引了 Replit CEO 的一句话,传播得很广:

「AI 驱动的逆向工程和反编译领域正在发生的事情简直不可思议。很快,所有软件都可能事实上变成开源软件。」

还有网友实测后的原话,比任何宣传语都直白:

「REA 火成这样真不是吹的,我拿剪映和几个项目试了试,确实底裤都没了。」

他提到:看到别人某个功能做得好,顺着模块、路由、IPC 通信一路查到实现逻辑,在自己的项目里直接复现;那些不给你开放接口的软件和库也能拆,Electron / 桌面端应用很多就裸奔了。

也有人一句话总结得更形象:「这就像有人给 Claude Code 配了一个反编译器。」

举个具体例子:为什么 Windows 计算器算 200 + 10% 等于 220

官方首页给了一个特别好懂的入门案例,因为它反直觉:在 Windows 计算器里按 200 + 10% =,结果不是 200.1,而是 220。为什么?

让 REA 去查,它会把这个 % 按钮的处理逻辑翻出来。结论是:在 + 之后,% 取的是「第一个数的百分比」——10% of 200 = 20,所以 200 + 20 = 220。但在 × 之后,规则又不一样了,10% 会变成 0.1,200 × 0.1 = 20。

换算成可读的伪代码大致是:

if (operation == multiply || operation == divide) {
  percent = current / 100;            // 10% -> 0.1
} else {
  percent = current * previous / 100; // 200 的 10% -> 20
}

这就是 REA 的典型产出:不是一坨看不懂的汇编,而是一条能被验证的规则,加上它从哪来的证据。

官方三个「正经」案例

案例 目标类型 做到了什么
DX-Ball 声像计算 1996 年的 Windows 原生程序 顺着声音调用追到「按位置计算左右声道」的辅助函数,把不完整的伪代码还原成 C。重建结果通过了 3,205 个原始 x86 测试用例,并复现了编译后函数的全部 63 个字节。
Notion 剪贴板桥 Electron / JavaScript 找到渲染进程的剪贴板 API,沿 preload 和 IPC 一路追到主进程,并检出了富格式剪贴板的实现方式。
TH04 弹幕环 PC-98 的 16 位 DOS 游戏 读原始 16 位指令,恢复固定角度与瞄准角度的计算,再把重建的 C++ 跟当年的编译器输出逐字节对比。

注意第三个案例——连通用的 Ghidra 都支持 16 位 DOS 分析,这类「没有源码的老游戏、老库」正是 REA 最能打动人的场景。有位用户说得很到位:它还能用来「拯救」那些源码早就丢了的老软件。

二、能分析什么:24 类目标,按「要装什么」分四档

官方 README 里那张能力表有 24 行,第一次看容易劝退。但只要按「为了分析它,你得先装什么」重新分一下档,整个学习路径立刻清楚了。

图片[2]-REA 从零开始详细教程:有了这个项目,任何收费软件的功能,你都可以自己实现了-二楼后座
档位 典型目标 你还得准备什么
A · 什么都不用装 .NET 程序集、JavaScript / Electron、Go 二进制、Rust 二进制、Flutter 应用、软件包与资源 只要 Node.js。静态读取文件,不运行目标应用。
B · 一个浏览器就够 网站结构 / 脚本 / 网络观察、按请求截图、HAR 或 SAZ 抓包、进程行为对比 一个 Chrome 系浏览器(通过本机调试端点被动观察)。
C · 装一个免费引擎 native 二进制(ELF / PE / Mach-O)、16 位 DOS 程序 Hopper、Ghidra 或 IDA 三选一。Ghidra 免费开源,新手建议先上它;另外两个是商业软件,要自己买授权。
D · 再补外部小工具 Android APK、Android 设备、固件、抓包、崩溃记录、EVM 字节码、WASM、逻辑信号 JADX + JDK、adb、Binwalk / Unblob、TShark、pwntools、WABT、sigrok-cli……按目标各自配一把。REA 只做调度,不替你安装。

选档原则:如果你的目标只是「看看某个 Electron 应用 / 某个网站是怎么做的」,那你属于 A 档或 B 档,什么都不用额外装,现在就动手。只有当你要拆真正的 exe / dylib / so 时,才需要往 C 档走。

几个值得先知道的细节

  • Go 和 Rust 二进制不需要装 Go / Rust。REA 内置了静态 ELF / PE / thin Mach-O 检查,能直接读出 Go 内嵌的编译器版本与模块,或 Rust 里 cargo-auditable 记录的 crate 名称与版本。
  • .NET 与静态 JavaScript 检查都「只读不跑」。不执行目标程序,风险最低。
  • 运行时捕获是另一回事。抓包、进程行为、浏览器观察这类,会以你的用户权限运行或交互目标程序,官方每份指南都单独说明了影响。
  • 版本差异分析是个隐藏彩蛋。它能对比同一个应用的两个版本,直接生成变更报告——做竞品跟进、或者查「这个版本偷偷改了啥」时非常好用。

三、装它:一条命令,两分钟

第 0 步:先看 Node 版本

REA 对 Node 版本卡得比较死,只认这三档:

  • Node.js 22.x(≥ 22.19)
  • Node.js 24.x(≥ 24.11)
  • Node.js 26+

先敲一句看看:

node -v

版本低了就先升 Node,否则后面 setup 会直接报错——这是最常见的第一个坑。

第 1 步:接进你的 AI 助手

npx rea-agents setup

跑起来之后,它会让你勾选要配置哪些 AI 助手,然后把计划中的变更列给你看,你批准之后才动手,并且会备份你已有的配置。装完记得重启助手,不然不生效。

官方明确支持的助手包括 Claude Code、Codex、Cursor、Gemini CLI、Grok Build,以及其他任何支持本地 MCP 服务的客户端(其他客户端走手动注册 MCP)。

Setup 到底做了什么?两件事:① 向你的助手注册 REA 的 MCP 服务(这是「工具」,没有它助手调不动 REA);② 安装配套的工作流指引(也就是 skill,告诉助手什么时候该调哪个工具、怎么看待证据)。只装 skill 不注册 MCP,等于只拿到说明书没拿到工具。

第 2 步:不用助手也能在终端里用

REA 的 CLI 和使用 MCP 是同一条工作流。想经常用的话,先全局装一次:

npm install --global rea-agents
rea --help

如果只是临时用,直接 npx 即可。比如检查一个已经解包出来的 JavaScript / Electron 应用目录或 ASAR 文件:

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

Windows 上把路径换成 "D:/apps/example" 这种形式就行。返回结果里会包含模块、导入、Electron 边界以及对应的证据。

第 3 步:保持更新

REA 迭代非常快(npm 与官方 Release 对应的版本,在 2026-10-11 就已经是 6.4.0,之前几天连着发了 6.0 → 6.4),新版本经常带 bug 修复。装了 CLI 的话:

rea update

用 npx 的方式接进助手的,就重新跑一遍 npx rea-agents@latest setup,检查变更、重启助手。

四、零基础三级上手:不用先啃反汇编

很多人卡在第一步——「我知道它很牛,但我该拿它干什么?」下面这条路径按难度递进,第 1 级十分钟就能出结果。

图片[3]-REA 从零开始详细教程:有了这个项目,任何收费软件的功能,你都可以自己实现了-二楼后座

第 1 级:什么都不装,先拆一个 Electron 应用

挑一个你自己电脑上的桌面应用——Notion、Obsidian、VS Code 这类 Electron 应用都行,或者干脆随便找个网站。然后对你的助手说:

用 REA 查一下这个应用里的搜索功能是怎么实现的,
把相关模块、导入和 IPC 通道列出来,标出每一条的依据,
然后在我的项目里写一个类似的实现。

你会看到它先列模块和入口点,再顺着导入关系追到具体的实现位置,最后给你一段带来源标注的说明。这一级不用装任何逆向引擎,静态分析读文件、不跑程序。

第 2 级:装一个免费引擎,开始碰二进制

从 Ghidra 官网下载解压,让 REA 指向它的安装路径(较新版本还支持实验性的 Windows Ghidra 支持)。然后拿一个你自己写的小程序练手最稳妥——有源码可以对照,能直接验证它说得对不对。

这时候你会发现,输出不再是「模块和导入」,而是伪代码、汇编、字符串、符号、调用关系和交叉引用。别指望一次全懂,重点看它标出来的「证据」和「未知项」两栏。

大文件的小技巧:二进制特别大时,把引擎的启动超时调大——官方提供了 REA_GHIDRA_STARTUP_TIMEOUT_MS 和 REA_HOPPER_STARTUP_TIMEOUT_MS 两个环境变量。

第 3 级:按目标补齐外部工具

这一级是「你要拆什么,就装什么」,不用一次全装齐:

想拆的东西 需要补的工具
Android APK 无界面 JADX + 完整 JDK(Linux / macOS / Windows x64)
连着的安卓手机 adb(模拟器或真机都可以)
固件 Linux 上的 Binwalk 或 Unblob
抓到的流量 TShark 4.x(Linux 上是 TShark + prlimit),或直接用 HAR / SAZ 文件
崩溃现场 / 逻辑信号 pwntools(可配 GDB / pwndbg)· sigrok-cli 0.7.2
离线 EVM / WASM 本地字节载体 · WABT 1.0.42

五、它比以前省事在哪

把「以前的做法」和「现在用 REA」摆在一起看,差别其实不在工具本身——Ghidra 2019 年就开源了,Hopper 的历史能追到 2011 年,IDA 从上世纪 90 年代就在用。REA 真正做的事,是让 Agent 能调用这些工具,把过去必须人工串联的分析步骤接进编程工作流。

环节 以前 用 REA
找入口 手动在符号表和字符串里翻找线索 一句话描述你想搞懂的功能,由 Agent 规划查哪几项
追调用链 在不同工具之间来回倒腾,手动记调用图 交叉引用、调用关系、伪代码在同一个会话里连续追问
判断结论对错 全靠自己经验 每条结论附带来源位置,说不清的地方会明确标「未知」
落地成代码 自己照着伪代码重写,再想办法验证 Agent 直接在你项目里写实现,并拿测试用例验证
技能门槛 需要专门学一门硬功夫 会提需求就行,分析步骤由工作流指引兜住

六、四个必须先知道的边界

它很强,但不是魔法。下面这四件事不提前搞清楚,大概率白折腾一场。

图片[4]-REA 从零开始详细教程:有了这个项目,任何收费软件的功能,你都可以自己实现了-二楼后座

1. 引擎不随包安装

REA 本身只做调度。真要拆原生二进制,你还得自备 Hopper、Ghidra 或 IDA;拆 APK 要 JADX + JDK;解固件要 Binwalk / Unblob。它不是把所有工具打包塞给你,而是把这些工具串成一条 AI 能走的路。

2. Node 版本卡得很死

前面说过:22.x(≥ 22.19)/ 24.x(≥ 24.11)/ 26+,没有更多选择。另外 Linux 上跑 Ghidra、JADX、固件工具和静态 JS 分析时,还需要一个 procps 兼容的 ps 在 REA 的 PATH 里(用于进程归属检查),缺了要按官方安装文档里的「Linux owned-process prerequisite」补上。

3. 它不是「自动还原源码」

这一条最容易被标题党带偏。REA 返回的是伪代码、汇编和引用,然后由 Agent 用这些发现去解释或重写。「还原出代码」和「理解了这个软件」之间还隔着一层——它为什么这样设计、业务规则是什么、哪些行为是刻意为之、哪些是历史包袱,这些还是得你自己判断。

而且大模型进逆向并不是从 REA 开始的。早在 2022 年,就有研究团队在测「大模型能不能辅助逆向」,当时的形态还只是「手动复制粘贴反编译代码让模型做阅读理解」。REA 这类方案往前走了一步:把大模型和 Ghidra、IDA 这些传统工具之间的调度搭起来。

4. 只分析你有权分析的软件

这一条不是套话,是官方写进 README 的立场:REA 用于合法的研究、教育、互操作性、软件保存,以及分析你拥有或获授权检查的软件。本项目对非法或未经授权使用的立场,涵盖所有 REA 版本、分发渠道和运行平台。

另外:IDA Pro / Hex-Rays、Hopper、JEB 这些商业工具,要你自己合法取得授权并遵守厂商条款。REA 不提供任何工具许可、密钥或激活权利,也明确反对破解副本、窃取或违规共用密钥、绕过许可限制。

顺便说个现实问题:它烧 token

有位资深安全人员分享过他自己的账:用 Cursor 配 Claude 分析 App,很多应用 30 分钟左右能出结果,花费不到 5 美元;他也提到过用 Claude Code 拆一个 Unity 游戏花了约 27 美元。平均算下来,一次完整逆向大致在 30 美元上下的量级。

这个数字对专业团队很划算,但如果你是抱着「随便试试」的心态去拆大程序,先有个心理准备。他的原话挺值得记下来:「那时我才意识到,我才是 AI 的限制器。」

七、常见问题

哪些 AI 助手能用?

任何支持本地 MCP 服务的助手都可以。Setup 会直接配置官方支持的那批(Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等),其他客户端走手动注册 MCP。

必须买 Hopper 或 IDA 吗?

不必。深入的原生分析需要一个引擎,但三选一里 Ghidra 完全免费开源,新手从它开始就够了。而且静态 JavaScript 与 .NET 检查根本不需要原生分析引擎——这也是建议从第 1 级开始的原因。

需要先手动打开 Hopper 吗?

不需要,REA 会在操作需要时自己启动它。只有 macOS 上首次运行可能弹出「选演示模式还是激活许可证」的对话框,需要在同一个用户会话里先处理掉,否则无人值守的任务会卡住。

它会把我的应用上传到云端吗?

分析在本机运行。你的助手会接收到工具结果,而它的模型提供方有自己独立的数据政策——这两件事要分开看,别把「本地分析」误读成「全程不出本机」。

只从 skills.sh 装那个 skill 行不行?

不行。skill 只是调查指引(告诉助手该怎么查),不包含 MCP 工具。必须用 npx rea-agents setup 注册 MCP 服务,再重启助手。

遇到 bug 怎么办?

先更新。很多问题在最近的版本里已经修了。更新后重试同一任务;还是不行就去仓库开 issue,附上 REA 版本、目标类型、复现步骤和错误输出。

怎么确认自己下的不是山寨版?

官方在 README 顶部专门加了一段警告:只从这三个来源拿——GitHub 仓库 morluto/rea、官网 rea.tools、npm 包 rea-agents。相似的仓库名、或者抄了一模一样的 README,都不能证明它是官方的。认准这三个入口的安装与发布链接。

写在最后

REA 真正改变的不是「软件有没有价值」,而是「软件的价值靠什么支撑」。过去四十年里,有一部分软件生意建立在「源码不可得」这个前提上;当 AI 能读懂二进制、能追调用链、能生成重构代码,这个前提就被撬松了。

但有专家说得很清醒:克隆能拿走的是代码,拿不走的是知识。面对一个没有源码的软件,重点从来不是「用另一门语言把它重写一遍」,而是推断它的业务逻辑、梳理清楚它到底在干什么。所以「拿不到源码」这件事挡不住谁了,但「理解为什么这样设计」仍然需要真功夫。

对你我这样的普通开发者来说,更实际的意义是:以后看到哪个功能做得好,终于不用只羡慕了。问一句,看看证据,然后自己写一个。

项目地址:github.com/morluto/rea | 官网:rea.tools | npm:rea-agents | MIT 许可

站内相关

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像-二楼后座
欢迎您留下宝贵的见解!
提交
头像-二楼后座

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容