REA:用自主智能体逆向一切,从应用行为直达原生二进制
REA 是 GitHub 上的开源 MCP 服务器,MIT 许可,通过 npx rea-agents setup 接入 Claude Code、Codex、Cursor 等智能体。它统一调用 Hopper、Ghidra、IDA 分析原生二进制,并覆盖 Electron、.NET、APK、固件与进程行为,所有结论附带证据与局限,分析在本机运行。README 以 DX-Ball、Notion、TH04 三个案例展示从指令级证据到可测试实现的完整链路。
在软件世界里,看到一个好用的功能,却不知道它是怎么做出来的,这是每个开发者都熟悉的遗憾。源码不公开、二进制被剥离符号、Electron 应用被打包成一个 ASAR 压缩包,传统做法是请一位逆向工程师,花上几天甚至几周,在反汇编器里一行一行地读。GitHub 上的开源项目 REA(Reverse Engineer Anything)想改变这个流程。它的一句话定位是:一个 MCP 服务器,把原生二进制、应用程序和运行时行为的逆向分析能力,统一交给你的智能体去调用。项目采用 MIT 许可证,通过 npm 包 rea-agents 分发,README 显示它已经积累了六万颗 GitHub 星标,并提供十九种语言的文档。对于一个安全研究与工程交叉领域的工具来说,这样的关注度本身就说明了需求有多真实。
REA 的工作方式并不神秘。你运行一条命令 npx rea-agents setup,选择自己使用的智能体,审阅安装程序提出的改动并批准。安装程序会把 REA 的 MCP 服务器注册进去,同时安装配套的工作流说明,并且为已有配置做备份。官方列出的支持对象包括 Claude Code、Codex、Cursor、Gemini CLI 和 Grok Build,凡是支持本地 MCP 服务器的智能体理论上都能接入。之后你只需要用自然语言提问,例如让智能体弄清楚某个应用里的搜索是怎么实现的,给出证据,再为你的项目写一个类似功能。智能体通过 MCP 调用 REA 去检查目标、追踪相关代码,REA 返回的是带证据的发现,包括代码、引用关系,以及仍然未知的部分。智能体再据此追问、解释,或者动手写出实现并测试。同一套流程也可以在终端里用命令行直接运行。
真正让这个项目有分量的,是它覆盖的目标范围。按照 README 中的表格,REA 可以分析原生二进制,返回伪代码、汇编、字符串、符号和调用引用,底层依赖 Hopper、Ghidra 或 IDA 之一;可以分析 JavaScript 与 Electron 应用,恢复模块、导入关系、source map、路由、IPC 以及原生插件之间的联系,这一部分只需要 Node.js,不需要任何原生分析引擎;也可以检查网站、HAR 网络抓包、.NET 程序集的元数据与 CIL 指令、Android APK 与设备、固件、EVM 字节码、离线 ELF 布局和 Linux 崩溃记录,甚至还有进程行为捕获,用来比较不同次运行的终端输出和文件系统变化。这意味着一个智能体可以在同一个会话里,从一个 Electron 应用的渲染进程一路追到主进程,再下探到某个原生插件的汇编。过去这需要在五六个互不相通的工具之间来回切换,如今被收拢成一组统一的工具目录。
项目给出的三个案例,最能说明这种能力的边界。第一个是 DX-Ball:从一次声音调用出发,追到位置到声像的辅助函数,检查指令,把不完整的伪代码还原成 C 代码;据 README 称,重建结果通过了 3205 个原始 x86 用例,并复现了全部 63 个编译后函数字节。第二个是 Notion:找到渲染进程的剪贴板 API,经由 preload 和 IPC 追到主进程,查看富文本剪贴板格式。第三个是东方 TH04:检查 PC-98 原版游戏的 16 位指令,恢复固定弹和自机狙的角度计算,并与历史编译器的输出对照。三个例子难度不同,但共同点很清楚:结论不是智能体凭印象写出来的,而是有可复核的指令级证据,并且能用测试来验证。这正是 REA 反复强调的原则:每个结论都附带证据与局限。 落到日常使用上,REA 更像一位不知疲倦的助手,而不是替代者。它要求 Node.js 22.19 以上、24.11 以上或 26 及更高版本,并提供命令行,所以团队可以把同样的分析写进脚本,保存快照,再让同事在自己的机器上复现。当智能体给出结论时,你可以顺着证据回到具体的函数、指令或模块,亲自核对。这种可复核性在安全审计、兼容性研究、遗留系统维护和互操作开发中尤其有价值。比如团队接手一个没有文档的老程序,或者需要理解某个第三方组件的行为边界,过去往往只能靠经验和耐心,现在可以先让智能体铺出一张证据地图,再由人来判断哪些结论值得相信、哪些仍需要进一步验证。工具把重复劳动接过去,判断仍然留给人,这才是它最稳妥的用法。 从行业视角看,REA 代表的是一种值得注意的趋势:把专业工具的能力封装成智能体可调用的协议接口,让大模型负责规划与解释,让确定性的分析引擎负责取证。它的 README 在本地性上说得很明确,分析在本机运行,智能体只收到工具结果,而模型提供商如何处理这些结果,取决于其自身的数据政策。这个分工降低了让模型凭空猜测二进制行为的风险,也让安全团队更容易审计整个过程。当然,也要保持清醒。运行时捕获会以你的用户权限运行或操作目标程序,使用前应当阅读对应指南;项目也明确声明,它只用于合法的逆向研究,使用者需自行获得授权并遵守法律,且项目没有发行任何加密代币,凡冒用 REA 名义的代币都与它无关。对开发者与安全团队来说,值得做的事情是,先在自己拥有的软件上试一次,看一看证据链是否经得起复核,再决定把它放进日常工作流。
Sources
FAQ
REA 是什么,怎么接入我的智能体?
REA 是一个开源 MCP 服务器,提供原生二进制、JavaScript 与 Electron 应用、网站、.NET、APK、固件等目标的逆向分析工具。安装只需运行 npx rea-agents setup,选择智能体、审阅并批准改动,再重启智能体。安装程序会注册 MCP 服务器、安装配套工作流说明,并备份已有配置。
使用 REA 必须安装 Hopper、Ghidra 或 IDA 吗?
不一定。深度原生二进制分析需要三者之一,其中 Hopper 可在你批准后由安装程序安装,Ghidra 与 IDA 使用你已有的安装。静态 JavaScript 与 .NET 分析不需要任何原生分析引擎,只需要满足版本要求的 Node.js 与 npm。
我的应用或二进制会被上传吗?使用时要注意什么?
README 说明 REA 在本地分析目标,智能体会收到工具结果,而模型提供商如何处理这些结果取决于其数据政策。运行时捕获会以你的用户权限运行或操作目标,使用前应阅读对应指南。项目仅用于合法的逆向研究,授权与合规由使用者负责。