REA – 开源的逆向分析工具,无需源码、对话式分析软件
发布于 2026-10-13 · REA(Reverse Engineer Anything)是开源的逆向分析工具,通过 MCP 协议把 Claude Code、Codex、Cursor 等 AI 编程 Agent 与 Ghidra、Hopper、IDA 等逆向工具连接起来。
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,再准备一个受支持的 AI 编程 Agent,比如 Claude Code、Codex 或 Cursor。
- 一键安装:终端里跑
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 返回内容 | 要求和指南 |
|---|---|---|
| 原生二进制 | 会返回伪代码、汇编、字符串、符号,以及调用和引用关系 | 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 |
|---|---|---|
| 定位 | 走的是通用逆向调度层路线,主打”调查软件并重建功能” | 是 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:只要 Agent 支持本地 MCP server 就能用。Setup 命令会自动配置好受支持的 Agent,其他客户端手动注册 MCP 也能接进来。
Q2:我需要安装 Hopper、Ghidra 或 IDA 吗?
A2:深度分析原生二进制需要三者之一;纯静态看 JavaScript 和 .NET 则完全不需要原生分析引擎。Hopper 可以在获得批准后由 setup 自动安装,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,把版本、目标类型、复现步骤和错误输出都附上。






0 条评论
暂无评论,来抢沙发。