最后更新:
Reverse Engineer Anything (REA):完整指南
Reverse Engineer Anything(REA)是一个开源的 MCP 服务器和命令行工具,让 Claude Code、Cursor、Codex 这类 AI 编程代理在没有源码的情况下检查原生二进制、Electron 应用和网站。你用自然语言提问,REA 在本机调用分析工具,代理拿回代码、引用和证据,再给你解释或照着实现。
Reverse Engineer Anything (REA) 是什么
REA 全称 Reverse Engineer Anything,是 GitHub 用户 morluto 的开源项目,口号是“一个 MCP 搞定二进制、应用和运行时行为的逆向工程”。简单说,它给你的编程代理装上一套逆向工具:看到别的应用里有个功能不错,直接让代理去查它是怎么实现的。目前 npm 最新版是 rea-agents 6.4.0,MIT 协议,分析全部在你自己的电脑上跑。
- 没有源码也能看. 原生二进制返回伪代码、汇编、字符串、符号和调用引用;JavaScript 和 Electron 应用返回模块、导入、source map、路由和 IPC。
- 每个结论都带证据. 每条发现都标明出处和仍不确定的地方,代理和你都可以先核实再采信。
- 一个工具,多种目标. 除了二进制和 Electron,还能分析网站、HAR 抓包文件、.NET 程序集、Android APK、Go 二进制、WASM、固件等,走的是同一套 MCP 和 CLI。
来源: GitHub:morluto/rea(README)
来源: rea.tools 官网
REA AI 的工作原理:代理、MCP、Ghidra 和 Hopper
REA 本身不是反汇编器,而是一个 MCP(Model Context Protocol)服务器,夹在代理和真正的分析引擎之间。你在 Claude Code 或 Cursor 里问一个二进制的问题,代理就去调用 REA 的工具;REA 启动 Hopper、Ghidra 或 IDA(或者它自带的 JavaScript 分析器、分析网站用的 Chrome 系浏览器),跑完分析后返回结构化结果。终端里的 rea 命令走的是同一套流程。
- 你向代理(Claude Code、Cursor、Codex)提问,对象是你电脑上的某个应用或文件。
- 代理通过 MCP 调用 REA 的工具。
- REA 在本机调用合适的引擎:原生代码用 Hopper、Ghidra 或 IDA,Electron 用 JS 分析器,网站用浏览器。
- REA 返回代码、引用、证据和未确认的部分。
- 代理解释原理,或者在你的项目里写出一个类似实现并测试。
REA 不会上传你的目标文件,但代理收到的工具结果会发给它所用的模型服务商,按服务商自己的数据政策处理。
来源: GitHub:morluto/rea(README)
来源: REA 文档:安装和配置
REA GitHub 安装教程:环境要求和命令
- Node.js 22.x(22.19 及以上)、24.x(24.11 及以上)或 26+,以及 npm。
- 分析原生二进制:需要 Hopper、Ghidra 或 IDA。安装向导可以在你同意后帮你装 Hopper;Ghidra 和 IDA 需要自己先装好。
- 分析网站:需要 Chrome 系浏览器。分析 JavaScript、Electron 和 .NET:不需要额外软件。
- 原生分析支持的系统:macOS 12+ 或较新的 Linux(Ubuntu 24.04+、Fedora 41+、Arch 等)。Windows 上的 Ghidra 支持还是实验性的。
- 运行 npx rea-agents setup。
- 在列表里勾选你用的代理,检查它要改的配置文件路径,确认后执行。原有配置会先自动备份。
- 重启代理,让它加载新的 MCP 服务器。
- 如果常在终端用,可以全局安装 rea 命令,并时不时跑一下 rea update:项目更新很频繁。
# 1) Register REA with your agents (Claude Code, Codex, Cursor, Gemini CLI ...)
npx rea-agents setup
# 2) Optional: install the rea command for regular terminal use
npm install --global rea-agents
rea --help
# 3) Keep it current (global install / npx setup)
rea update
npx rea-agents@latest setup以上命令照抄自 github.com/morluto/rea 的 README。用 Bun 的话,把 npx rea-agents@latest 换成 bunx rea-agents@latest。
来源: GitHub:morluto/rea(README)
来源: REA 文档:安装和配置
来源: npm:rea-agents
在 Claude Code、Cursor 和 Codex 里使用 REA
安装向导会在每个代理里注册同一个 MCP 服务器,同时装上 REA 的工作流说明(也就是 reverse-engineer-anything 这个 skill)。重启后直接用自然语言提问就行。下面第一条是 README 自带的示例,其余三条是我们按代理分别写的。
- Claude Code. 安装时勾选 Claude Code(客户端 ID claude_code),重启后在终端会话里提问。Claude Code 擅长长链路追踪,可以要求它每一步都给出证据。
- Cursor. 勾选 Cursor(cursor)。REA 会出现在 Cursor 的 MCP 工具里;用 Agent 模式,它才能调用工具并改你的项目。
- Codex. 勾选 Codex(codex)。适合“先找到实现,再在自己仓库里重写”的任务,产出是一个补丁。
Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.用 REA 分析 /Applications/Example.app,找出“复制为 Markdown”命令是怎么实现的:从渲染进程开始,经过 preload 和 IPC 一直追到主进程,每一步给出文件和函数名。列出你无法确认的部分。用 REA 检查 ./vendor/libexample.dylib,找到解析配置文件的函数,给出它的伪代码和引用的字符串,然后在 src/config/ 里写一个等价的 TypeScript 解析器并附上单元测试。我丢了 ./legacy/report.exe 的源码(我自己 2014 年写的程序)。用 REA 配合 Ghidra 找到 CSV 导出里格式化日期的地方,解释它为什么写出两位数年份。来源: GitHub:morluto/rea(README)
来源: REA 文档:安装和配置
先在终端里试一下 REA
不接代理也能先试。下面这条命令分析一个解包后的 JavaScript/Electron 应用目录或 ASAR 文件,输出它找到的模块、导入和 Electron 边界,并附上证据,不需要任何原生引擎。
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json把路径换成你的目标,Windows 上可以写成 "D:/apps/example"。
来源: GitHub:morluto/rea(README)
REA 应用场景:从 Electron 应用到恶意软件,逆向分析几乎一切(reverse engineering anything)
- 逆向 Electron 应用. Electron 应用把 JavaScript 打包在 ASAR 里。REA 能还原模块、路由和 IPC 通道,官方的 Notion 案例就是这样把剪贴板功能从渲染进程一路追到主进程的。
- 分析闭源 API(API anything). 导入一个 HAR 抓包文件,或者让 REA 在浏览器里观察某个网站,它会列出请求、响应、数据内容,以及发出请求的脚本。想给一个你有权使用、但没有文档的 API 写客户端,这是最快的办法。
- 恶意软件和安全事件分析. REA 的使用声明把恶意软件分析、事件响应和安全研究列为正当用途。请在隔离的虚拟机里操作:静态分析只读文件不运行,但运行时捕获会真的执行目标程序。
- 调试自己的旧程序. 自己写的程序源码丢了,或者想知道旧版本为什么行为不同?官方的 DX-Ball 案例用 C 重建了一个函数,编译后和原版的 63 个字节完全一致。
来源: REA 官方案例(DX-Ball、Notion、TH04)
REA 视频教程
两个 YouTube 创作者做的 Reverse Engineer Anything 实操视频(英文,非 REA 官方,也不是我们做的)。点击播放后才会从 YouTube 加载。


REA、Ghidra 和 Hopper 对比
它们其实不是竞争关系。Ghidra 和 Hopper 是负责反汇编、反编译的引擎;Reverse Engineer Anything 是架在上面的代理层,负责驱动它们,并把输出整理成代理能用的证据。
| REA | Ghidra | Hopper | |
|---|---|---|---|
| 是什么 | 把 AI 代理连到分析工具的 MCP 服务器 + CLI | 美国国家安全局(NSA)开源的逆向工程套件 | 反汇编和反编译工具 |
| 谁来操作 | 你的 AI 代理,或你在终端里 | 你,用图形界面或脚本 | 你,用图形界面或脚本 |
| 价格 | 免费,MIT 协议 | 免费,Apache 2.0 | 商业软件,有功能受限的免费试用 |
| 系统 | macOS、Linux;Windows 支持代理配置、JS/.NET 分析和实验性 Ghidra | Windows、macOS、Linux(需要 JDK) | macOS、Linux |
| 分析对象 | 原生程序、Electron/JS、网站、HAR、.NET、Android、固件等 | 多种 CPU 架构的原生二进制 | 原生二进制(Mach-O、ELF、PE) |
| 适合 | 直接提问,拿到带证据的答案 | 深度手工分析、写脚本 | 在 Mac 上快速手工分析 |
IDA 是第三个可选引擎。商业引擎需要你自己的合法授权,REA 不提供。
来源: GitHub:morluto/rea(README)
来源: GitHub:NationalSecurityAgency/ghidra
逆向工程合法吗
很多情况下合法,但取决于你所在的地区、分析的对象和你同意过的许可协议。不少地方允许为了互操作、安全研究、教学和修复自己拥有的软件而逆向;美国 DMCA 有互操作豁免,欧盟软件指令也允许在一定条件下为互操作而反编译。但软件许可或服务条款仍可能明确禁止。
REA 自己的声明写明,它只用于合法研究、教学、互操作、软件保存,以及分析你拥有或获得授权的软件。项目不会帮助绕过 DRM、授权校验或反作弊,不会帮助做游戏外挂、绕过未获授权系统的身份验证,也不会帮助复制他人的专有代码和素材。
以上只是一般信息,不构成法律意见。如果你打算公开分析结果,或基于别人的软件发布代码,请先咨询律师。
常见问题
REA 免费吗?
免费。REA 以 MIT 协议开源,npm 包 rea-agents 不收费。你只需要为周边付费:AI 代理的订阅或 API 用量,以及如果用 Hopper 或 IDA,需要它们的授权。Ghidra 免费。
REA skill 是什么?
reverse-engineer-anything 这个 skill 是一套说明,告诉代理什么时候、怎样使用 REA。npx rea-agents setup 会把它和 MCP 服务器一起装好。也可以用 npx skills add morluto/rea --skill reverse-engineer-anything 只装 skill,但这样不会注册 MCP 工具。
REA 支持 Mac 和 Windows 吗?
主要支持 macOS 12+ 和较新的 Linux 发行版,原生分析用 Hopper、Ghidra 或 IDA。Windows 上可以配置代理,JavaScript、Electron 和 .NET 静态分析也能用;Ghidra 支持是实验性的,Hopper 不支持 Windows。
REA AI 是什么?
大家说的“REA AI”就是 REA(Reverse Engineer Anything),一个给 AI 编程代理加上逆向能力的工具。REA 自己没有模型:AI 是你的代理(Claude、GPT、Gemini 等),REA 提供工具和证据。
REA 和其他 MCP 服务器有什么区别?
REA 本身就是一个 MCP 服务器。和只包一个工具的 MCP(比如只接 Ghidra 的桥接)相比,它把多个引擎(Hopper、Ghidra、IDA、浏览器、JS、.NET 和 Android 分析器)放在一次安装里,每个结果都带证据,还附带配套的代理说明。
Reverse Engineer Anything 的 GitHub 地址是什么?
github.com/morluto/rea。README 里安装的 npm 包叫 rea-agents,教程和案例在 rea.tools。
独立指南,与 REA 项目、morluto、Anthropic、Cursor、OpenAI、NSA 和 Hopper 均无关联。内容来自 morluto/rea 的 README、安装文档和使用声明(6.4.0 版),核对于 2026 年 10 月 12 日。REA 更新很快,安装前请以 README 为准。