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

REA的主要功能

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

如何使用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

相关文章

0 条评论

后参与评论

暂无评论,来抢沙发。