一句话:REA 不是又一个反编译器,而是一个 MCP 服务——它把 Ghidra、Hopper、IDA 这些老牌逆向工具包成你的 AI 助手能直接调用的接口。你负责提问,它负责在本机取证,Agent 负责解释或重写。装它,只需要一条 npx 命令。
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 从零开始详细教程:有了这个项目,任何收费软件的功能,你都可以自己实现了-二楼后座](https://cdn.ele.ac.cn/wp-content/uploads/2026/10/flow.png-shuiyin)
逆向最怕的,是被一个自信的错误答案带偏。所以 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 从零开始详细教程:有了这个项目,任何收费软件的功能,你都可以自己实现了-二楼后座](https://cdn.ele.ac.cn/wp-content/uploads/2026/10/targets.png-shuiyin)
| 档位 | 典型目标 | 你还得准备什么 |
|---|---|---|
| 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 从零开始详细教程:有了这个项目,任何收费软件的功能,你都可以自己实现了-二楼后座](https://cdn.ele.ac.cn/wp-content/uploads/2026/10/levels.png-shuiyin)
第 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 从零开始详细教程:有了这个项目,任何收费软件的功能,你都可以自己实现了-二楼后座](https://cdn.ele.ac.cn/wp-content/uploads/2026/10/limits.png-shuiyin)
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 许可
站内相关
- 个人 Agent 五家横评:Muse、Grok Bot、Spark、Cue、Dots,谁最适合当你的助理?——REA 是「挂在助手身上的能力」,先挑一个顺手的助手再谈。
- GitHub 从零开始详细教程:看懂仓库、发布作品、版本管理与开源协作——第一次从仓库拿开源项目,先看这篇。
- FreeLLMAPI 从零开始详细教程:把 34 家免费大模型聚合成一个 OpenAI 接口——逆向分析很烧 token,这篇能帮你把账单压下来。




























暂无评论内容