rea

一个开源 MCP 服务器和 CLI,让 AI 代理能在本地对二进制文件、应用和网站进行逆向工程,并提供有证据支持的结果。

TypeScriptMITMCP
⭐ GitHubhttps://github.com/morluto/rea
273,713
Star 数
+0
Star 增速
2026年10月16日
最后更新
4
点击数

1. 项目概述

REA(Reverse Engineer Anything,逆向工程一切) 是一个开源的 MCP(模型上下文协议)服务器和命令行工具,让 AI 代理能够检查软件——从原生二进制文件到 Electron 应用、网站和 Android 包——解释其工作原理,并为每个结论提供证据支持,且全部在本地运行。

2. 背景与定位

创建原因

逆向工程通常意味着要在许多专用工具(反编译器、反汇编器、数据包分析器、浏览器开发者工具)之间切换,并手动将发现拼凑在一起。REA 为 AI 编码代理提供了访问这些工具的统一一致接口,使代理无需源代码即可检查目标,描述功能的行为方式,并帮助构建类似的功能。

与类似项目的区别

  • 一个 MCP 覆盖多种目标: 不同于针对单一反编译器的专用插件,REA 在一个服务器中涵盖二进制文件、应用和运行时行为。
  • 证据优先的输出: 结果附带支持的伪代码、汇编、符号、引用以及已知局限性的说明。
  • 与提供商无关: 原生分析可使用 Hopper、Ghidra 或 IDA,离线检查可使用 GNU objdump 或 Rizin。
  • 本地且静态优先: 分析在本地运行;静态 JavaScript 和 .NET 检查读取文件而不执行它们。
  • 双接口: 相同的工作流既可通过 MCP 供代理使用,也可通过 rea CLI 供人类使用。

3. 功能类别

🧩 原生二进制文件与固件

  • 覆盖范围:原生可执行文件、ELF、Go/Rust、WASM、EVM 字节码、固件镜像
  • 示例:通过 Hopper/Ghidra/IDA 获取伪代码和汇编;ELF 节、段和缓解措施候选(pwntools);Go/Rust 编译器和 crate/依赖信息;WASM 验证和 WAT 形式(WABT);EVM 调度选择器和可变性;固件解包(Binwalk/Unblob)
  • 目的:在没有源代码时理解编译后的代码。

🌐 Web 与 JavaScript 应用

  • 覆盖范围:网站、JavaScript 和 Electron 应用
  • 示例:Electron 应用中的模块、导入、路由和 IPC;原生插件;网站页面结构、脚本、网络数据和截图(Chrome 系列浏览器)
  • 目的:梳理 Web 或桌面 Web 应用的构建方式。

📱 移动端与 .NET

  • 覆盖范围:Android APK 和设备、.NET 程序集、Flutter、Apple 应用包
  • 示例:APK 清单和反编译方法(JADX + JDK);设备日志和文件传输(adb);.NET 元数据、CIL 指令和构建比较
  • 目的:检查移动端和托管代码软件。

📡 数据、网络与信号

  • 覆盖范围:SQLite、数据包捕获、逻辑分析仪记录、进程行为
  • 示例:SQLite 表、索引、视图、触发器和行;通过 TShark 进行 pcap 分析;通过 sigrok-cli 进行逻辑信号解码;运行时进程捕获
  • 目的:结合代码检查数据存储和运行时行为。

🤖 代理集成

  • 覆盖范围:Claude Code、Codex、Cursor、Gemini CLI、Grok Build 以及其他支持本地 MCP 服务器的代理
  • 示例:一键 setup 命令、安装的工作流说明、已发布的代理技能、完整的 rea CLI
  • 目的:让你可以在已有的代理环境中使用这些工具。

4. 主要亮点

  • 广泛的目标覆盖: 一个服务器处理数十种目标类型,从原生代码到网站。
  • 有证据支持的结果: 每个答案都附带支持性工件并说明局限性,使发现更易于验证。
  • 引导式设置: setup 命令会显示建议的配置更改以供批准,并在应用前备份现有配置。
  • 自带工具: REA 与你已有的反编译器和工具集成;它不会安装或更新它们。
  • 文档化案例展示: 案例研究包括通过 3,205 个原始 x86 测试用例的 DX-Ball 重构、Notion 的 Electron 剪贴板桥接研究,以及 TH04 的 DOS 子弹环计算。
  • 本地化文档: README 提供 20 种语言版本。

5. 按角色划分的用例

  • 普通开发者: 理解未记录的行为,研究库或应用如何实现某项功能,或从事互操作性工作。
  • DevOps/SRE: 检查第三方二进制文件和桌面应用,审查 Go/Rust 构建中的依赖项,并检查网络捕获。
  • 安全工程师: 对二进制文件进行分类,审查 ELF 缓解措施,分析 APK、固件和数据包捕获——仅限你有权检查的软件。
  • 数据/研究科学家: 从 SQLite 文件中提取表,记录文件格式,并支持软件保存工作。
  • 项目经理: 获取关于竞品或遗留产品行为的可读、有证据支持的摘要,为规划提供依据。

6. 快速入门

🔍 查找所需内容

浏览 rea.tools/guides 和 rea.tools/showcase 上的指南和案例展示,或查看仓库中的文档(docs/cli.md、docs/mcp-contracts.md)。

⚙️ 安装与集成

需要 Node.js 22.19+、24.11+ 或 26+ 以及 npm。

# 向你的代理注册 REA 并安装说明
npx rea-agents setup

# 或安装全局 CLI
npm install --global rea-agents
rea --help

# 从终端分析提取的 JavaScript/Electron 应用
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

# 更新全局安装
rea update

设置或更新后请重启你的代理。

🤝 贡献

提交 issue 或 pull request。开发设置和检查请参阅 CONTRIBUTING.md,报告漏洞请参阅 SECURITY.md。

7. 项目结构

rea/
├── src/                 # 核心源代码(TypeScript)
├── bridge/              # 桥接组件
├── native/windows/      # Windows 原生支持
├── website/             # rea.tools 的源代码
├── docs/                # 文档、翻译后的 README、资源
├── tests/               # 测试套件
├── scripts/             # 维护脚本
├── licenses/            # 许可证文本
├── third_party/         # 第三方材料
├── CONTRIBUTING.md
├── DISCLAIMER.md
├── SECURITY.md
└── THIRD_PARTY_NOTICES.md
  • docs/ 包含安装、CLI、MCP 合约、提供商指南、路线图和架构图。
  • docs/readme/ 包含翻译后的 README。
  • THIRD_PARTY_NOTICES.md 列出了捆绑或引用的组件的许可证。

8. 相关生态系统

  • 分析提供商: Hopper、Ghidra、IDA、GNU objdump、Rizin
  • 支持工具: JADX、Apktool、adb、JEB、WABT、pwntools、Binwalk、Unblob、TShark、sigrok-cli
  • 分发: rea-agents npm 包
  • 代理技能: skills.sh 上的 reverse-engineer-anything
  • 案例展示仓库: N0zoM1z0/dx-ball 和 N0zoM1z0/th04
  • 代理: Claude Code、Codex、Cursor、Gemini CLI、Grok Build 以及其他支持 MCP 的客户端

9. 许可证

  • ✅ REA 原创代码以 MIT 许可证发布:可自由使用、修改和再分发。
  • ✅ 适用于合法的研究、教育、互操作性、软件保存以及对你拥有或有权检查的软件进行分析。
  • ❌ REA 不授予 IDA Pro、Hopper 或 JEB 等商业工具的许可证或密钥;你必须自行合法获取。
  • ❌ 不适用于分析你无权检查的软件。
  • ℹ️ 第三方组件保留其各自的许可证(参见 THIRD_PARTY_NOTICES.md)。
  • ℹ️ 使用前请查看 DISCLAIMER.md,并仅从官方仓库、rea.tools 或 rea-agents npm 包安装。

10. 常见问题

问:REA 支持哪些 AI 代理?
答:Claude Code、Codex、Cursor、Gemini CLI、Grok Build 以及其他支持本地 MCP 服务器的代理。运行 npx rea-agents setup 进行注册。

问:我需要安装反编译器吗?
答:对于原生二进制文件的伪代码,是的——需要 Hopper、Ghidra 或 IDA。许多其他目标(JavaScript、.NET、Go/Rust、SQLite)使用内置或轻量级检查。REA 不会为你安装提供商。

问:我的数据会离开我的机器吗?
答:分析在本地运行。静态检查读取文件而不执行;运行时捕获在你自己的权限下运行目标。

问:如何更新 REA?
答:对于全局安装,运行 rea update;对于 npx 更新,运行 npx rea-agents@latest setup 以刷新代理注册。

问:在哪里可以看到实际效果?
答:参见 rea.tools/showcase 上的案例研究,例如 DX-Ball 和 Notion。

11. 快速链接

12. 总结

REA 为 AI 代理提供了一个统一的、以证据为中心的接口,用于对二进制文件、应用、网站和运行时行为进行逆向工程,且全部在本地运行。它适合希望理解其有权检查的软件、而不必为每个目标切换单独工具的开发者、安全工程师和研究人员。