你有没有过这种时刻:用一个软件,特别好奇某个功能是怎么做出来的------搜索为什么这么聪明、那个动效怎么算出来的、点一下导出背后发生了什么?想去查,它闭源;想问 AI,AI 没见过这个程序,只能瞎编。
10 月初,GitHub 上一个开源项目把这件事彻底改变了。它叫 REA(Reverse Engineer Anything,逆向一切),火到什么程度?
上线冲上 GitHub 趋势榜第一,我写稿时 star 数已经 11 万+,最夸张的时候一天更三个版本。
它干的事一句话说清:给你的 AI 编程助手装上一套专业逆向工具,让它真的去"拆开"你电脑上的任何软件,沿着证据链讲清楚功能是怎么实现的------而不是靠猜。
这篇文章我会带你从零装好它、跑通第一个分析,然后把 Windows 上最实用的几条分析路线各走一遍------每一步都有真实截图。
读完你能拿到:一套能跑的环境 + 看懂 REA 输出的眼睛 + 一组拿走即用的提示词模板。
先说清楚这篇文章不做什么:不带你完整复刻某个软件。复刻一个产品,难的从来不是功能而是效果------算法逻辑 REA 能给你证据链,但产品级的手感、性能、细节打磨是几千次迭代喂出来的,那是另一个话题。
这篇只解决"怎么用 REA 把软件看明白",学会方法后你想拆什么、拿什么功能进自己的项目,就是你自己的事了。
一、REA 是个什么东西?
一)它到底火在哪
REA 是一个 MCP 服务器 + 命令行工具(npm 包名叫 rea-agents),MIT 协议完全开源。
它的思路不是自己造反编译器,而是把业界几十年的专业逆向工具------Ghidra、Hopper、IDA------还有一堆 JS/.NET/浏览器分析器,统一接到你的 AI 编程助手(Claude Code、Codex、Cursor 等)上。
AI 通过它可以去:
- 拆 Electron/JS 应用:解包 ASAR,画出模块关系图,追踪一个功能从界面点击 → 预加载脚本 → 进程通信 → 主进程的完整链路
- 拆原生二进制(exe/dylib/ELF):反编译出伪代码和汇编,找函数、追调用关系、读内存里的数值常量
- 认 .NET 程序集:纯静态读出元数据、类型、方法、依赖,不运行一行代码
- 盯网页:连接浏览器,抓取你点击瞬间的网络请求,定位发起请求的那行脚本
- 还有安卓 APK、固件、智能合约字节码等等
社区已经玩出了花:有人在 Hacker News 上分享,把 Windows 自带的远程桌面程序喂给 AI,凭一句症状描述,半小时修好了两个多年没人修的 bug;有人逆向 Insta360 的剪辑软件,写了个垫片让自己的笔记本核显也能硬件加速;
还有人用它反编译老游戏,把童年记忆移植到现代系统上。逆向圈吵翻了天------有人欢呼"大量因为没人肯花几千小时手工逆向而烂掉的老软件,终于有救了",也有职业逆向工程师感慨饭碗端不稳。
github仓库地址是:github.com/morluto/rea

仓库主页上的 star 数还在以肉眼可见的速度涨。它跟普通"AI 帮你逆向"最大的区别是三个字:证据链。
REA 的每一条结论都带证据编号(Evidence ID)、来源位置、甚至"哪些部分我没查清"的声明。它不会不懂装懂------这一点我们后面在输出里亲眼看。
二)它能给你什么、不能给你什么
用之前必须建立正确的预期,这决定了你用它的姿势对不对。

官方维护着一份持续更新的实测案例库:连身份验证器每 30 秒一变的动态码算法、CTF 竞赛的 flag 校验逻辑,都被完整拆解并附上验证过程。
它能给你:功能的实现原理、算法逻辑、模块关系、数据流向------全部带证据。
你看到一个好功能,可以让 AI 查明白后"照着机制写一个自己的实现"。
它不能给你:产品级的效果。一个功能"能跑"和"好用"之间隔着一整个产品的打磨功夫。
逆向能告诉你某软件的模糊搜索怎么打分,给不了它十万级文件下依然跟手的性能优化。
所以别指望"逆向一个 Photoshop"------社区里真在做这类复刻的团队,也都强调只做"净室"式的机制研究。
三)法律边界,先说清楚
REA 官方定位就是合法的逆向研究与分析。我国《计算机软件保护条例》也允许软件合法持有人研究其设计原理。但有三条线别碰:
- 别把逆向结果直接商业发布------复刻机制写自己的实现没问题,原样搬人家代码/美术/资源是找死;
- 别碰大厂核心资产的商业机密------学习研究可以,高调整活容易吃官司;
- 别拿它做坏事------找漏洞去利用、破解付费,那是另一个法律频道的事。
项目爆火后,Hacker News 上 769 分、327 条评论的大讨论里,吵得最凶的就是法律与伦理边界------工具越强,越要自己心里有秤。
记住一句:学机制、写自己的实现,安全;抄成果、碰硬骨头,危险。
二、五分钟装好它
一)先确认 Node 环境
REA 需要 Node.js 22.19+ / 24.11+ 或 26。没装的去 Node 官网(nodejs.org/zh-cn/download)下 LTS 安装包,装完打开 PowerShell(按 Win 键搜 PowerShell)验证:
powershell
node -v

能打出 v24.19.0 这样的版本号(你的是 v24.x 或 v22.x 都行),环境就绪。
二)一条命令接入你的 AI
在 PowerShell 里执行:
powershell
npx -y rea-agents@latest setup

它会列出所有支持的 AI 助手让你选------Claude Code、Codex、Cursor、Gemini CLI、Qwen Code 等 17 个。
我机器上检测到了 Claude Code(列表第一项标了 Detected),你装了哪个就选哪个 :按 ↑/↓ 移动光标,按 空格 勾选,按 回车 确认。
三)看清它要改什么,再放行
确认后它不会偷偷动手,而是先给你看一张"施工清单":

我这次它列了两项改动:往 Claude Code 的配置文件里注册 REA 服务、往个人技能目录装一份"逆向调查工作流"说明。
注意 backup 那行------它会把你的原配置自动备份 (.claude.json.rea.backup),改坏了随时能回滚。
确认无误后按回车应用,然后重启你的 AI 助手(注意是完全退出再打开,托盘图标也要退),装 配 就完成了。
三、第一个分析:官方练习题
第一次上手别直接拆大软件,先用官方提供的示例应用练手------一个只有 6 个源文件的小 Notes 应用,麻雀虽小,Electron 的三件套(界面、预加载、主进程)全有。
一)拿到示例
浏览器打开官方指南页 rea.tools/guides/javascript,页面里有「Download example ZIP」按钮:

下载后解压到一个你顺手的目录,比如 C:\Users\你的用户名\Downloads\notes-example。
二)跑第一条命令
在 PowerShell 里执行(路径换成你自己的解压目录):
powershell
npx -y rea-agents@latest analyze-javascript-application "$HOME\Downloads\notes-example" --format json --filter-output normalized_result.summary.ipc

这条命令的意思是:静态分析这个目录里的 JS 应用(不用启动它),结果只要 IPC 通信部分的摘要。回车后它会先刷一串进度(在盘点文件、解析语法),几秒后出结果。
三)看懂输出:这是全篇最重要的一张图

输出的 ipc 字段里,重点看这几个数字:1 条明文通信通道,界面端发送 1 次,主进程接收 1 次,完美配对、零歧义。
这就是 REA 干的活:它通读了示例的全部代码,把"点导出按钮 → 数据穿过进程边界 → 落成 CSV 文件"这条看不见的链路,用数字摆在了你面前。
同时注意输出里还有一个 limitations(限制声明)字段,它会明确告诉你:"这些关系是从静态语法推断的,运行时行为未经验证"。说清楚自己知道什么、不知道什么------这才是 AI 分析该有的样子。
实际使用中你几乎不会手敲这么长的命令。装好 REA 后,真正的日常用法是第四种打开方式,第八节见。
四、拆一个真实的 Electron 应用
练完习题做真题。你电脑上的很多软件------Xmind、阿里云盘、各家国产 AI 助手------都是 Electron 应用,它们的全部代码都打包在安装目录 resources 文件夹的一个 app.asar 文件里。
一)找到 asar
资源管理器地址栏输入 %LOCALAPPDATA%\Programs,进入任意一个应用文件夹里的 resources:

看到 app.asar 了吗?一个 200MB 的文件,整个应用的前端代码、界面逻辑全在里面。这就是我们的拆解目标。
二)拆 207MB 的 Xmind
我拿 Xmind(思维导图)做实测。命令和第三节一样,路径换成 asar 文件:
powershell
npx -y rea-agents@latest analyze-javascript-application "$env:LOCALAPPDATA\Programs\Xmind\resources\app.asar" --format json --filter-output normalized_result.summary.ipc,normalized_result.statistics
大文件要多等一会,我实测约 5 分钟。结果:

8919 个模块全部解析、3033 个 JS 文件、读入 58MB 源码文本、发现 39980 处结构特征,解析零失败。一个闭源商业软件的完整代码骨架,就这样被铺开在你面前。接下来你可以让 AI 顺着某条通信通道往下追------某个功能怎么调用的、数据存在哪,它都能给你指出具体文件和行号。
三)REA 也会拒绝:这个细节很加分
不是所有软件都能顺利拆。我拿阿里云盘试了一次:
powershell
npx -y rea-agents@latest analyze-javascript-application "$env:LOCALAPPDATA\Programs\aDrive\resources\app.asar" --format json --filter-output error

直接被拒:JavaScript application analysis failed。
完整错误信息里说得很清楚------包里一个原生模块文件的实际指纹和打包时的声明对不上(安装器动过它),REA 按完整性校验原则拒绝分析,并把"声明的指纹"和"实际的指纹"两个值都列给你。
文件被动过手脚就明说,而不是硬着头皮给你分析一份可能不可信的结果------这个设计我很喜欢。
五、看穿一个网页:抓一次点击背后的请求
第三条路线:不装任何东西,直接观察浏览器里的网页。适合研究"某个网页操作背后发生了什么"。
一)带调试端口启动浏览器
关掉所有 Chrome 窗口,然后按 Win+R 输入以下内容启动一个带调试端口的 Chrome(可以换成任何网址):
kotlin
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir=%TEMP%\rea-chrome https://rea.tools/examples/notes-web/
我打开了官方的 Notes 网页示例,页面上有个"Export notes"按钮:

二)开观察窗,点按钮
回到 PowerShell,先问 REA 这个浏览器里有哪些页面(拿到页面 ID),再开一个 12 秒的观察窗:
powershell
npx -y rea-agents@latest list-browser-targets http://127.0.0.1:9222 --format json
powershell
npx -y rea-agents@latest inspect-web-page http://127.0.0.1:9222 页面ID --observation-ms 12000 --format json --filter-output normalized_result.network.requests

回车后立刻切到浏览器,在观察窗内点击页面上的 Export notes 按钮。12 秒后 PowerShell 交出答卷:

看这两处:你点击的瞬间,一个 GET 请求飞向 notes.json,状态 200;发起者是 export.js 脚本的第 3 行。一次点击背后的完整因果链------什么请求、发给谁、谁发起的------全被钉在证据上了。把它和第三节对脚本源码的分析连起来,一个网页导出功能的原理就完整了。
六、认出一个 .NET 程序
Windows 上大量工具软件是 C#/.NET 写的。REA 对这类程序做纯静态盘点------只读元数据,不运行、不加载:
powershell
npx -y rea-agents@latest inspect-managed-artifact "C:\Program Files\某个软件\某个.dll" --format json --filter-output normalized_result.classification,normalized_result.assembly,normalized_result.target_frameworks

我拿本机一个软件的组件实测,输出(见下图)直接给出三样东西:这是托管代码(CIL 中间语言)、程序集名字和版本、目标框架 .NET 3.1------而且每条结论都带证据编号和在文件中的偏移位置:

有意思的细节:我最初拿它去认这个软件的主程序 exe,REA 如实回答"这不是 .NET 程序集"(原生 PE)------真正的代码在同名的 .dll 里。它分得清"启动器"和"程序本体",这种诚实在水货 AI 分析工具里很少见。
七、原生二进制:门槛与路径
最硬核的路线------反编译 exe 的机器码------需要再装一个专业反编译引擎,三选一:Ghidra(免费开源,需另装 JDK 21+)、Hopper(macOS/Linux)、IDA(商业)。
装好任何一个后跑一条体检命令,REA 会告诉你缺什么:
powershell
npx -y rea-agents@latest doctor --provider ghidra --format json --filter-output providerInspections

我机器上还没配 Ghidra,它直接说"GHIDRA_INSTALL_DIR 未设置",连补救命令都给你写好了。配好后就能让 AI 反编译函数、追调用链、还原算法------官方展示过一个案例:从 1996 年的老游戏里还原音效的左右声道计算公式,还原出的 C 代码跟原函数 63 个编译字节全部一致。
这一条路线门槛最高(要装 Java 和 Ghidra),但也是含金量最高的。新手建议先玩熟前三条零门槛路线,需要时再回来。
八、真正的日常用法:在 AI 里说一句话
前面你手敲的每条命令,装好 REA 后都可以变成一句话。打开你的 AI 助手,直接说:
帮我用 REA 分析一下 XX 软件,看看它的 YY 功能是怎么实现的,给我看证据。
AI 会自己决定调哪个工具、传什么参数------就像下面这样,分析、读输出、追证据全程自动:

你只负责提问和看结论。这也是 REA 的正确打开方式:命令行是它的手,自然语言才是它的门。
九、提示词模板库(拿走即用)
根据目标类型,套这几个句式:
拆应用功能(Electron/JS 软件通用):
用 REA 分析「软件名」的安装目录里的 app.asar,讲清楚「功能名」从界面操作到数据落盘的完整链路,
每一步给出源码文件和行号,最后用大白话总结它的工作机制。
看穿网页操作:
帮我用调试端口观察这个页面(地址),我手动操作「某按钮」,你抓下点击瞬间的网络请求和发起脚本,
再读一下相关脚本源码,解释这个功能在前端是怎么实现的。
认程序身份(任何 exe/dll):
用 REA 看一下这个文件是什么类型的项目:是什么语言/框架写的、版本多少、依赖哪些库,
把判断依据一并列出来。
从机制到实现(合规复刻的正确姿势):
基于你刚才查明的机制(不要引用原程序的任何代码),帮我从零写一个最小可用的同类实现,
只实现核心逻辑,代码要完全原创。
最后一条就是"复刻"的安全姿势:让 AI 凭"机制理解"写全新代码,而不是搬运原程序的字节。
我按模板④把第五节分析的网页导出功能重写了一遍------30 行原创代码,机制同源、字字原创:

十、什么时候该用、什么时候别用
一张判断清单收尾:
- 有源码的项目 → 别用 REA,直接看代码
- 闭源软件、想知道某功能原理 → 正中本项目的靶心
- 网页交互背后的逻辑 → 正中 项目的靶心
- 老软件修复、老游戏复刻 → 社区已验证的最佳场景
- 想整段搬人家的代码和素材 → 别,法律风险
- 大厂核心产品的高调逆向 → 慎重,学习研究别声张
工具是中性的,REA 把过去专业团队才玩得起的逆向能力塞进了每个人的终端里。怎么用,考验的是拿工具的人。
装好它,从拆你电脑里第一个让你好奇的软件开始吧。拆出什么有意思的东西,欢迎评论区聊聊。