引言
"See a feature you like. Understand how it works, down to the binary level."
这是「每日一个开源项目」系列的第 235 篇 。今天的项目是 REA(Reverse Engineer Anything) ------ 一个把 AI Agent 和逆向工程工具连接起来的 MCP 服务器,作者 morluto,187,000+ Stars,MIT 许可证,上线仅半年即进入 Trendshift 趋势榜。
逆向工程一直是一门门槛很高的手艺:要懂汇编、要会用 Hopper/Ghidra/IDA 这类专业工具、要能从反编译出的伪代码里拼出业务逻辑。REA 的做法是把这套能力封装成 MCP 工具,交给 AI Agent 去调用------你只需要用自然语言告诉 Agent "我想知道这个 App 的某个功能是怎么实现的",Agent 就会自己调用 REA 提供的各种分析工具,逐步深入到字节码、汇编、符号表层面,拿到带证据链的分析结果,再据此帮你写出一个类似的实现。
你会学到什么
- REA 的核心定位:MCP 工具 + Agent,而不是一个独立的逆向平台
- 它能分析的目标清单有多广:从网站、Electron 应用,到 Native 二进制、EVM 字节码、Android APK、固件
- "证据 + 局限性"的结果设计,为什么对 AI 辅助分析特别重要
- 快速上手:
npx rea-agents setup到让 Agent 开始分析 - 原生二进制分析依赖 Hopper/Ghidra/IDA,但 JS/Electron 分析不需要
前提知识
- 了解 MCP(Model Context Protocol)的基本概念
- 使用过 Claude Code、Cursor、Codex 等支持 MCP 的 AI Agent
- 对逆向工程术语(反汇编、伪代码、符号表)有基础认识会更容易理解,但不是必需
项目背景
概述
REA 的核心主张很直接:看到一个应用里喜欢的功能,让 Agent 去调查它。 不需要源码,Agent 就能检查这个应用,解释功能的工作原理,给出证据,然后在你自己的项目里实现一个类似版本。REA 本身不是一个"全能逆向平台",而是把现有的逆向工具(Hopper、Ghidra、IDA 等)包装成标准化的 MCP 接口,让 Agent 能够驱动它们完成分析任务------分析过程完全在本地运行。
作者 / 团队
- 作者: morluto
- 主要语言: TypeScript
- 许可证: MIT License
- 创建时间: 2026-04-14(上线仅约半年)
- 当前状态: 活跃开发中,社区贡献者众多,Discord 社区活跃
项目数据
- ⭐ GitHub Stars: 187,000+
- 🍴 Forks: 45,000+
- 📄 许可证: MIT
- 📅 创建时间: 2026-04-14
- 🔥 Trendshift 趋势仓库(trendshift.io/repositories/82054)
- 👥 核心贡献者:作者 morluto(1,389 次提交)领衔,N0zoM1z0(504 次)、kaoru0822-kitauji(407 次)等多名活跃贡献者
- 🏷️ Topics: agent-skills, ai-agents, binary-analysis, claude-code, cli, codex, ctf, decompiler, disassembler, ghidra, hopper, llm, mcp, model-context-protocol, reverse-engineering, static-analysis
说明:项目半年内积累近 19 万 Star 确实惊人,但 Trendshift 官方趋势徽章和稳定的多贡献者提交记录(而非单一账号刷量)都印证了这是一个真实的、处于"AI Agent + 逆向工程"风口上的热门项目,而不是刷星仓库。
快速上手
配置 Agent
安装好 Node.js 和 npm 后:
bash
npx rea-agents setup
命令会让你选择要接入的 Agent,展示即将做出的改动,经你确认后才会写入配置(并自动备份原有配置)。配置完成后记得重启 Agent。目前官方支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等多个 Agent。
向 Agent 提问
text
Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.
把 Notes 换成你想分析的目标应用,把"search"换成你想理解的功能即可,剩下的交给 Agent 和 REA 配合完成。
命令行直接用
分析一个解压后的 JavaScript/Electron 应用目录或 ASAR 包:
bash
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
结果包含模块、依赖导入、Electron 进程边界及对应证据。如果要长期使用,可以全局安装:
bash
npm install --global rea-agents
rea --help
原生二进制分析需要先配置一个分析引擎(Hopper/Ghidra/IDA 任选其一)。
核心剖析:工作流程与"证据+局限性"的结果设计
Agent 通过 MCP 调用 REA,REA 返回带证据的发现
REA 的工作流程很清晰:Agent 通过 MCP 调用 REA 检查目标并追踪相关代码,REA 返回发现(findings)及其证据,Agent 据此继续追问、解释原理,或者直接写代码并测试实现。命令行用的是同一套工作流,所以你也可以不经过 Agent,直接在终端里跑分析命令、生成快照、做脚本化处理。
这个设计的关键在于:REA 本身不负责"下结论",它只负责提供有证据支撑的分析事实,真正的推理、解释、代码生成都交给调用它的 Agent 完成。这种分工让 REA 保持工具的单一职责,同时让分析结果天然带有"可审查性"------Agent 给出的每一个结论都能追溯到具体的反汇编行、字符串引用或模块依赖关系。
分析目标清单:覆盖面是这个项目最硬核的部分
REA 支持的分析目标种类相当惊人,README 里列出了一张详尽的表格,这里摘录一些有代表性的:
| 分析目标 | 返回内容 | 依赖 |
|---|---|---|
| Native 二进制 | 伪代码、汇编、字符串、符号、调用关系 | Hopper / Ghidra / IDA |
| Go 二进制 | 内嵌的编译器版本、模块、构建设置 | 内置静态解析,无需安装 Go |
| EVM 字节码 | 调度选择器、字节偏移、推断参数和可变性 | 本地离线分析 |
| JavaScript / Electron | 模块、导入、Source Map、路由、IPC、Native 插件关系 | Node.js + npm |
| 网站 | 页面结构、脚本、网络请求观察、截图 | Chrome 系浏览器 |
| .NET 程序集 | 元数据、CIL 指令、声明的 Native 依赖、构建对比 | 纯静态分析,无额外依赖 |
| Android APK | Manifest 声明、类、反编译方法、引用关系 | Headless JADX + 完整 JDK |
| 固件 | 分区、提取结果、Native 分析交接 | Linux 下的 Binwalk / Unblob |
| 录制的网络抓包 | 请求、响应、暴露的 Payload、来源代码位置 | HAR / Fiddler SAZ |
静态 JavaScript 和 .NET 检查只读取提供的文件,不会运行应用;而涉及运行时行为的分析(比如网站交互、进程行为捕获)会以你当前用户权限真实运行或与目标交互------每份对应的指南都会说明具体影响范围。这种"静态优先、运行时按需"的分层设计,让大多数轻量分析场景(比如看一眼某个 Electron 应用的 IPC 结构)完全不需要触碰运行时风险。
原生分析引擎可插拔,JS/.NET 分析完全不需要引擎
REA 没有自己重新发明一套反编译引擎,而是复用你已经安装好的 Hopper、Ghidra 或 IDA------设置过程中可以在获得你批准的情况下帮你安装 Hopper,Ghidra 和 IDA 则直接使用现有安装。这个选择很实际:反编译引擎这件事技术门槛极高,REA 没有必要重复造轮子,它要解决的是"把这些引擎的能力暴露给 Agent"这个集成问题。而对于不涉及二进制反编译的场景------纯静态的 JavaScript、.NET、Flutter 分析------REA 内置了完整的解析能力,不依赖任何第三方引擎,这意味着哪怕你完全没有逆向工具链,也能先用这部分能力起步。
项目地址与资源
- 🌟 GitHub : morluto/rea
- 🌐 官网 : rea.tools
- 📖 使用指南 : rea.tools/guides
- 🎬 案例研究 : rea.tools/showcase(包括还原 DX-Ball 音效声像算法、追踪 Notion 的 Electron 剪贴板桥接、复原 TH04 DOS 游戏子弹环算法)
- 📦 npm : rea-agents
- 💬 Discord : discord.gg/GkcryMnJDM
- ⚠️ 免责声明 : 详见项目的 DISCLAIMER.md,明确限定用途为合法研究、教育、互操作性和软件保护,以及分析你拥有或已获授权的软件
总结
REA 代表了一种关于"AI + 逆向工程"的清晰判断:逆向分析所需的专业工具链早已存在,真正缺的是一层能让 AI Agent 自主调用这些工具、并把结果组织成可信证据的接口。
三点值得注意:
把"下结论"的职责留给 Agent,自己只负责"提供有证据的事实",是克制且正确的架构分工。 很多 AI 分析工具试图让模型直接产出"这段代码在做什么"的结论,容易出现幻觉且难以验证。REA 坚持返回原始发现和证据链,让 Agent 在此基础上推理,这个设计选择本身就是对"AI 辅助逆向"这件事该怎么做的一次很好的回答。
分析目标覆盖面从网站、Electron 到 EVM 字节码、固件、Android 设备,广度远超一般逆向工具。 这说明项目在刻意追求"一个 MCP 覆盖尽可能多的逆向场景",而不是只做某一类专精分析------这也解释了为什么它能同时吸引安全研究者、CTF 玩家和想理解竞品功能的产品开发者。
半年内获得近 19 万 Star 和 4.5 万 Fork,背后是真实的多贡献者生态,而不是刷量。 这提示了一个趋势:当"用 AI Agent 分析闭源软件行为"从极客圈的小众玩法变成一个有明确工具链支撑的工程实践时,它能迅速吸引大量开发者------这个方向值得持续关注。
如果你经常好奇某个应用的某个功能到底是怎么实现的,又不想从头学一遍反汇编,REA 提供的"Agent 驱动分析"路径值得你亲自试一试。
探索 PrimeSkills ------ 精选 AI agent 和技能工具,每一个都经过真实工作流验证。没有炒作,只有真正好用的工具。
访问我的个人主页,获取更多见解和有趣的产品。