1. 项目概述
REA(Reverse Engineer Anything,逆向工程一切) 是一个开源的 MCP(模型上下文协议)服务器和命令行工具,让 AI 代理能够检查软件——从原生二进制文件到 Electron 应用、网站和 Android 包——解释其工作原理,并为每个结论提供证据支持,且全部在本地运行。
2. 背景与定位
创建原因
逆向工程通常意味着要在许多专用工具(反编译器、反汇编器、数据包分析器、浏览器开发者工具)之间切换,并手动将发现拼凑在一起。REA 为 AI 编码代理提供了访问这些工具的统一一致接口,使代理无需源代码即可检查目标,描述功能的行为方式,并帮助构建类似的功能。
与类似项目的区别
- 一个 MCP 覆盖多种目标: 不同于针对单一反编译器的专用插件,REA 在一个服务器中涵盖二进制文件、应用和运行时行为。
- 证据优先的输出: 结果附带支持的伪代码、汇编、符号、引用以及已知局限性的说明。
- 与提供商无关: 原生分析可使用 Hopper、Ghidra 或 IDA,离线检查可使用 GNU objdump 或 Rizin。
- 本地且静态优先: 分析在本地运行;静态 JavaScript 和 .NET 检查读取文件而不执行它们。
- 双接口: 相同的工作流既可通过 MCP 供代理使用,也可通过
reaCLI 供人类使用。
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命令、安装的工作流说明、已发布的代理技能、完整的reaCLI - 目的:让你可以在已有的代理环境中使用这些工具。
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-agentsnpm 包安装。
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. 快速链接
- 仓库:https://github.com/morluto/rea
- 网站和指南:https://rea.tools
- npm 包:https://www.npmjs.com/package/rea-agents
- 安装文档:https://github.com/morluto/rea/blob/main/docs/installation.md
- 贡献指南:https://github.com/morluto/rea/blob/main/CONTRIBUTING.md
- 社区:Discord 服务器和 GitHub issues/pull requests(从 README 链接)
12. 总结
REA 为 AI 代理提供了一个统一的、以证据为中心的接口,用于对二进制文件、应用、网站和运行时行为进行逆向工程,且全部在本地运行。它适合希望理解其有权检查的软件、而不必为每个目标切换单独工具的开发者、安全工程师和研究人员。