REA 开源的逆向分析工具,无需源码、对话式分析软件
REA是什么
REA(Reverse Engineer Anything)是开源的逆向分析工具,通过 MCP 协议把 Claude Code、Codex、Cursor 等 AI 编程 Agent 与 Ghidra、Hopper、IDA 等逆向工具连接起来。REA让 Agent 无需源码可分析软件,从原生二进制、Electron/JS 应用、APK、.NET 程序集到网站,追踪功能实现逻辑并生成带证据链的分析结果,重建相似功能。

REA的主要功能
- 原生二进制分析 :解析 Mach-O、ELF、PE 等可执行文件,返回伪代码、汇编、字符串、符号和调用关系。
- JavaScript/Electron 应用分析 :静态梳理模块、入口、IPC 通道和 source map,无需运行应用。
- 网站观察 :通过本地 Chrome DevTools 端点被动观察浏览器行为、页面脚本和网络请求。
- .NET 程序集检查 :无需执行程序即可查看元数据、CIL 指令和原生代码边界。
- Android 应用逆向 :借助 JADX 反编译 APK,查看清单声明、类和方法。
- 固件与包文件分析 :用 Binwalk 提取固件区域,或直接生成 ZIP/APK/ASAR 等归档的文件清单。
- 版本差异对比 :比较应用两个版本的二进制差异,生成变更报告。
- 网络抓包分析 :解析 HAR 文件或 mitmproxy 捕获,关联请求与源码位置。
- 代码重建辅助 :Agent 基于分析结果追踪功能实现线索,为项目编写相似功能并验证。

如何使用REA
- 环境准备 :安装 Node.js(≥22.19 版本)和 npm,确保已安装 Claude Code、Codex、Cursor 等任一支持的 AI 编程 Agent。
- 一键安装 :在终端运行 npx rea-agents@latest setup ,选择要接入的 Agent 并审核配置变更。
- 审批配置 :确认 setup 提出的 MCP server 注册和 workflow 指令修改(会自动备份原配置),然后重启你的 Agent。
- 准备逆向引擎 (可选):深度分析原生二进制需已有 Hopper、Ghidra 或 IDA 安装,纯 JS/Electron 分析不需要。
- 用自然语言提问 :向 Agent 描述目标,例如分析 Notes 应用的搜索功能如何工作,展示证据,并为我的项目实现类似功能。
- Agent 自动调查 :Agent 通过 MCP 调用 REA 在本地分析目标,获取带证据链的伪代码、调用链等结果。
REA的核心优势
- 零逆向经验门槛 :无需学习反汇编和逆向技术,用自然语言向 AI Agent 提问可分析软件。
- 打通主流 Agent 生态 :同时支持 Claude Code、Codex、Cursor、Gemini CLI、Windsurf 等几乎所有主流 AI 编程助手。
- 复用成熟逆向工具 :底层调度 Ghidra、Hopper、IDA 等专业工具,站在几十年逆向工程积累之上。
- 覆盖目标极广 :从原生二进制、Electron/JS 应用、APK、.NET 到网站、固件、WASM,几乎无死角。
- 证据链驱动 :每个结论附带伪代码、汇编、调用关系等证据,结果可验证。
- 本地分析保障隐私 :全部分析在本地运行,目标软件不会被上传到云端。
- 端到端自动化 :从分析、追踪调用链到生成可运行的相似实现,一条 Agent 工作流串到底。
REA的项目地址
- 项目官网 :https://rea.tools/
- GitHub仓库 :https://github.com/morluto/rea
REA可以分析什么
目标类型 | REA 返回内容 | 要求和指南
| 目标类型 | REA 返回内容 | 要求和指南 |
|---|---|---|
| 原生二进制 | 伪代码、汇编、字符串、符号、调用和引用 | Hopper、Ghidra 或 IDA;原生分析指南 |
| 离线 ELF 布局 | 节区、段、原始符号/重定位和静态缓解候选 | Linux x64 上自备 pwntools;二进制诊断指南 |
| Go 二进制 | 内嵌编译器版本、模块、替换和构建设置 | 内置静态 ELF/PE/thin Mach-O 检查;无需安装 Go |
| WASM 文件 | 校验、节区、精确的导入/导出 WAT 形式和解码后的 WAT | 自备 WABT 1.0.42;`inspect_wasm_artifact` |
| EVM 字节码 | 调度选择器、字节偏移、推断的参数和可变性 | Linux x64 本地原始/十六进制载体;离线 EVM 指南 |
| Linux 崩溃记录 | 原始备注、每个记录线程的寄存器/信号和可选映射候选 | Linux x64 自备 pwntools;可选 GDB/pwndbg;崩溃记录指南 |
| JavaScript / Electron | 模块、导入、source map、路由、IPC 和原生插件关系 | Node.js 和 npm;应用分析指南 |
| 网站 | 页面结构、脚本、网络观察和请求的截图 | Chrome 系浏览器;浏览器分析指南 |
| 保存的网络抓包 | 请求、响应、暴露的负载和源码位置 | HAR;Linux 上原生 mitmproxy 捕获用 mitmdump;抓包指南 |
| .NET 程序集 | 元数据、CIL 指令、声明的原生依赖和构建对比 | 无(纯静态);托管代码指南 |
| Android APK | 清单声明、类、反编译方法和引用 | Linux/macOS/Windows x64 上的无头 JADX 和完整 JDK;Android 指南 |
| Android 设备 | 设备、包、进程、日志、转储、屏幕截图和 APK/文件传输 | 自备 adb(模拟器或真机);ADB 指南 |
| JEB 工程 | 引擎支持的分析单元、工件摘要和类型/方法伪代码 | 由调用方启动的 JEB 客户端提供 MCP 服务,通过 `REA_JEB_MCP_URL` 选择;JEB 指南 |
| Android 资源 | 解码后的清单、字符串表、语言区域和版本信息 | 自备 Apktool 启动器;资源指南 |
| 固件 | 区域、提取结果和原生分析交接 | Linux 上的 Binwalk / Unblob;固件指南 |
| 安装包和资源 | 文件清单、摘要、plist、Apple bundle 结构和提取的资源 | 工件与 JavaScript 指南、Apple 应用指南 |
| 进程行为 | 终端输出、交互、退出和文件系统观察,以及多次运行对比 | Linux/macOS 且需原生 PTY;进程捕获指南 |
REA的同类竞品对比
对比维度 | REA | GhidraMCP
| 对比维度 | REA | GhidraMCP |
|---|---|---|
| 定位 | 通用逆向调度层,面向”调查软件并重建功能” | Ghidra 专用 MCP 桥,面向”深度分析二进制” |
| 底层引擎 | 多引擎调度:Ghidra / Hopper / IDA / JADX / JEB 等 | 仅绑定 Ghidra(插件 + Python/Go 桥接) |
| 分析目标范围 | 原生二进制、Electron/JS、APK、.NET、网站、固件、WASM、EVM、网络抓包等 15+ 类 | 仅限 Ghidra 支持的原生二进制 |
| Agent 接入 | 一键 setup 注册 Claude Code、Codex、Cursor、Gemini CLI、Windsurf 等 | 理论支持任何 MCP 客户端,但需手动配置 bridge 脚本 |
| 安装体验 | `npx rea-agents setup` 一条命令,自动装 MCP server + workflow 指令 | 需装 Ghidra 插件、跑 bridge 脚本、手改客户端配置文件,链条较长 |
| 工作流深度 | 端到端:分析→追踪调用链→生成相似实现→验证 | 侧重分析环节:反编译、重命名符号、列导入导出、标注代码 |
| 证据链 | 每个结论附带伪代码、汇编、调用关系等证据和局限性说明 | 返回反编译结果与符号信息,证据结构化程度较低 |
| 协议/许可 | MIT | Apache-2.0 |
REA的应用场景
- 竞品功能复现 :看中某个 App 的离线搜索、同步机制等功能,让 Agent 拆解其调用链,在自己的项目中实现相似版本。
- 无源码老软件抢救 :对失去源码的老软件、老游戏或老库,用 Agent 读取伪代码和汇编,还原算法并迁移到现代技术栈。
- Electron/桌面应用审计 :静态梳理闭源桌面应用的模块、路由、IPC 通信和 preload 脚本,评估安全性或理解其行为。
- 遗留系统迁移评估 :对比软件两个版本的二进制差异生成变更报告,或分析 .NET/原生组件的依赖边界,辅助系统改造决策。
REA的常见问题
Q1:哪些 Agent 可以使用 REA?
A1: 任何支持本地 MCP server 的 Agent 都可以。Setup 命令会自动配置受支持的 Agent,其他客户端可通过手动注册 MCP 使用。
Q2:我需要安装 Hopper、Ghidra 或 IDA 吗?
A2: 深度原生二进制分析需要三者之一。静态 JavaScript 和 .NET 检查不需要任何原生分析引擎。Setup 可在获得批准后自动安装 Hopper;Ghidra 和 IDA 则使用你已有的安装。
Q3:我需要先启动 Hopper 吗?
A3: 不需要,REA 会在需要时自动启动 Hopper。但在 macOS 上,首次运行可能弹出对话框要求选择演示模式或激活许可证,需在同一个用户会话中完成该提示,再进行首次 CLI/MCP 操作或无人值守任务。
Q4:从 skills.sh 安装 skill 有什么作用?
A4: 该 skill 为你的 Agent 提供调查指令。建议通过 npx rea-agents setup 同时注册 REA 的 MCP server 并安装配套指令,然后重启 Agent。
Q5:REA 返回的是什么代码?
A5:原生分析返回伪代码和汇编;JavaScript/Electron 分析恢复模块及其依赖关系。你的 Agent 基于这些发现来编写和测试实现。
Q6:REA 会上传我的应用吗?
A6: 不会。REA 在本地分析目标,只有你的 Agent 会收到工具结果;模型提供商的数据政策由各提供商自行决定。
Q7:遇到 bug 怎么办?
A7: 先更新,最近的版本可能已经修复了该问题。CLI 用户运行 rea update;npx 用户重新运行 npx rea-agents@latest setup 并重启。如果问题依旧,提交 issue 并附上版本、目标类型、复现步骤和错误输出。