morluto/rea
项目简介
REA(Reverse Engineer Anything)是一个把逆向工程能力封装成 MCP 服务、交由 AI Agent 驱动的开源工具链。它让 Claude Code、Codex、Cursor、Gemini CLI 等 Agent 直接对原生二进制、JavaScript/Electron 应用、.NET 程序集和网站发起结构化分析。核心价值在于:无需源码即可定位某个功能是如何实现的,并且每一条结论都会附带证据与已知局限,而不是让 LLM 凭空推测。分析全程在本地执行,同时提供 CLI 入口,方便脚本化与人工复核。
技术亮点
- 同一套 MCP 工具覆盖多种分析目标:原生二进制、Electron/ASAR 包、.NET assembly、Web 前端共用一套工具注册与调用约定,Agent 不需要为每种目标学习新的交互方式。
- 证据驱动的输出契约:分析结果内置 evidence 与 limitations 字段,把“看到了什么”和“没验证什么”显式分离,显著降低 Agent 在逆向场景下的幻觉率,也让结论可被人工追溯。
- 复用现有反汇编后端而非自研:原生分析可挂接已有的 Hopper、Ghidra、IDA 或 Kuna 安装,REA 只负责编排与结果归一化;静态 JavaScript 分析则完全不依赖任何原生引擎,启动成本极低。
- 面向上下文的 schema 策略:MCP 默认使用紧凑输入 schema 压缩 token 开销,输出 schema 可按客户端帧上限做截断或省略,同时保留服务端的规范化校验与完整结构化结果。
- 安装即注入工作流:
npx rea-agents setup会自动注册 MCP server 并写入配套的 workflow instructions,改配置前做备份,多 Agent 并行安装互不干扰。
架构解析
整体分为四层。最外层是接入层,包含 MCP server 与 CLI 两条入口,二者共享同一份工具实现与参数校验。其下是工具层,按目标类型切分为原生二进制分析、JavaScript/Electron 静态分析、.NET 反编译、Web 抓取等工具组,每组暴露稳定的输入输出契约。第三层是Provider 适配层,把 Hopper、Ghidra、IDA、Kuna 等异构引擎的调用差异抽象为统一接口,未配置原生 provider 时自动降级为纯静态能力。底层是证据与运行时层,负责本地进程所有权校验(Linux 下依赖 procps 兼容工具)、结果结构化与局限性标注,保证整条链路的可复现性。
适用场景
- 竞品功能拆解:发现某 App 有一个想复刻的交互或算法,让 Agent 定位到具体模块、调用链与关键常量,再据此在你自己的技术栈里重建。
- Electron 应用审计:解包 ASAR,梳理主进程与渲染进程边界、IPC 通道、依赖模块与潜在越权面,用于安全评估或二次开发。
- 闭源 SDK / 库行为验证:通过 .NET 程序集或原生二进制的反汇编结果,确认真实网络请求、加密方式与埋点逻辑是否与文档一致。
- 漏洞复现与应急响应:快速判断某个二进制是否包含特定函数特征或危险 API 调用,把人工翻符号表的时间压缩到分钟级。
- Agent 训练环境构建:README 明确提到可用于构建 RL environments,逆向任务天然具备可验证的中间证据,适合做 Agent 的评测与强化学习样本。
生态对比
与 Ghidra / IDA Pro 相比,REA 不是反汇编器,而是它们之上的编排层:Ghidra 强在开源反编译与脚本化,IDA 强在交互式分析体验,但两者都假设操作者是人;REA 把操作者换成 Agent,并补上了结果结构化与证据输出。与 radare2 / Binary Ninja 的差异类似——REA 可复用这些引擎,但关注的是“让 Agent 可调用、可验证”。在同类的 MCP 逆向插件中,多数只封装单一引擎的少数命令,覆盖面窄且缺少证据契约;REA 的差异点是多目标面统一 + provider 可插拔 + 显式局限声明。
延伸阅读
- REA 官方网站
- 上手指南 Guides
- 真实案例 Showcases
- GitHub 仓库 morluto/rea
- npm 包 rea-agents
- 安装与 Provider 配置文档
- MCP 契约与工具目录
- CLI 与证据指南
- Release Notes
- Agent Skill 页面
- 社区 Discord
项目信息
- 仓库地址: https://github.com/morluto/rea
- 许可证: MIT
- 开发语言: TypeScript
- Stars: 414,986 | Forks: 103,794 | 热度 100.0
- 主页: https://rea.tools