开源 MCP 服务器 REA 把 Ghidra、IDA 和 Frida 一站式接给 AI 智能体
REA 一周内拿到 24 万 GitHub star;6.5 版加入 Frida 运行时插桩

一个名为 REA —— Reverse Engineer Anything(逆向一切)—— 的开源 MCP 服务器,到 2026 年 10 月 14 日 GitHub star 数越过约 24 万,而 10 月 6 日还不到 1 万,成为该平台今年增长最快的仓库之一。这个发布在 GitHub 账户 morluto 名下的项目并不自带反编译器。它做的是把 AI 编码智能体连接到研究者机器上已有的专业逆向工程工具,然后把这些结果约束在一个可验证的标准之下。
该仓库于 2026 年 4 月发布,起初无人问津,10 月初随着对其架构的报道传开,单日新增超过 3.1 万 star。10 月 13 日发布的 6.5.0 版是最新版本。它加入了 Frida 运行时插桩 —— 让智能体可以跟踪并修改活动进程,而不只是读取静态二进制 —— 并扩展了对 Kimi Code、DeepSeek 的智能体框架、Qoder、Trae 及其他几个编码环境的客户端配置支持。
REA 到底做什么
REA 是一个 Node.js 包(rea-agents),运行一个本地的模型上下文协议服务器和一个命令行界面。安装之后 —— npx rea-agents setup 会为用户选择的智能体写入配置 —— 服务器暴露出一组工具,AI 编码智能体可以像调用任何其他 MCP 工具那样调用它们。智能体发问;REA 调用相应的本地二进制;REA 格式化结果并返回。
这种架构意味着反编译器本身不变。Ghidra,美国国家安全局 2019 年公开发布的反汇编器,仍然是 Ghidra。IDA Pro 仍然是 IDA Pro。REA 增加的是一个结构化接口,以及一份关于每个结果意味着什么的契约。
路由取决于目标。Android 包交给 JADX 或 Apktool。固件镜像交给 Binwalk 或 Unblob。WebAssembly 模块交给 WABT。抓包文件交给 TShark。逻辑分析仪记录交给 sigrok。对原生二进制,IDA Pro、Hopper 和 JEB 与 Ghidra 一同受支持;REA 的文档强调商业工具必须由用户合法授权。
证据契约
REA 里的每个分析工具都返回一条项目称为「证据对象」的结构化记录。每个结果包含一份规范化的解读、底层工具的原始输出、一个稳定标识符,以及一个明确的覆盖声明,写明要么是 complete —— 工具处理了整个二进制段 —— 要么是 unknown。最后这个字段很要紧:它告诉调用方智能体,覆盖上的空缺是工具的局限,还是内容确实不存在。
项目把这描述为「断言」与「结果」之间的区别。通过 REA 调用 analyze_function 的智能体,得到的不仅是反编译出的类 C 输出,还有一条让它能评估反编译器实际处理了什么的来源链。REA 的文档把这种架构描述为让分析「在代码可被检验之处变得廉价」—— 反过来说,智能体无法对照二进制验证的结果不应被当作事实。
三个公开展示
REA 的展示页面记录了三个可独立复现的端到端重建。
第一个是一个63 字节的声音声像函数,来自 DX-Ball —— 一款 1996 年用 Visual C++ 4.0 编译的 Windows 共享软件游戏。智能体顺着一次声音调用追到内存地址 0x00406400 处的辅助例程,识别出浮点常量 1.5625、500.0 和 1.0,并产出了一个 C 语言等价实现。游戏重建逆向工程师、REA 贡献者 N0zoM1z0 建立了重建仓库。测试覆盖五个声像比例值,并需要一个经审阅的重定位步骤;把恢复出的函数接进游戏的实时声音系统被列为后续工作。
而第二个展示涉及 TH04 中一个 2139 字节的弹幕环例程,TH04 是 1994 年用 Turbo C++ 4.0J 编译的 PC-98 DOS 弹幕射击游戏。完整可执行文件为 156258 字节。智能体匹配了该段并重新编译;输出与原件逐字节一致。TH04 这一段位于 ReC98 之内,那是一个已持续多年、由人主导的反编译项目。REA 的展示页指出,游戏镜像的独立来源证明仍是一个未结项。
至于第三个展示,它用 REA 4.1.0 追踪 Notion 桌面端的剪贴板写入,从 Electron 渲染进程经预加载脚本和一条 IPC 通道进入主进程。智能体识别出 notion:clipboard:write 通道、ipcRenderer.invoke 调用,以及另一侧的 ipcMain.handle 注册。
这三个例子的共同点是一个验证预言机:用固定的历史编译器重新编译,再把输出与原始二进制逐字节比对的方法。DX-Ball 有 3205 个测试用例。TH04 有 2139 个匹配字节。Notion 追踪可以针对应用的固定版本重新运行。在每个案例中,断言都不是「智能体理解了代码」,而是「输出编译成了相同的字节」。
在 MCP 生态中的位置
把反汇编器接到 AI 智能体的工具集成并不新鲜。LaurieWired 于 2025 年 3 月发布了 GhidraMCP。Duncan Ogilvie 同月发布了一个 IDA Pro MCP 插件。两者都是聚焦的集成:一个工具,一个 AI 接口。
REA 的思路是把工具集统一到一个带有通用证据格式的单一服务器之下。截至撰稿时,服务器在上述各类分析类型上暴露了 170 多个工具;完整更新日志显示版本从 2026 年 4 月的 0.2.1 走到了 10 月中旬的 6.5.0。
Ogilvie 的 IDA 插件自有拥趸,他曾指出,给模型塞一套更大的工具并不会自动提升表现 —— 在工具广度成为瓶颈之前,模型上下文就可能先成为限制因素。REA 用一个紧凑配置来应对,把完整的工具定义负载从约 496 KB(约 12 万 token)压到约 290 KB,并附带一个按当前任务选择工具、而不是把一切同时暴露的智能体技能。
教科书《Practical Reverse Engineering》的合著者、前 Hex-Rays 员工 Elias Bachaalany 在转发早期报道时把对 REA 的反应定性为「炒作」。他的实用提醒是,开发者应该把关键逻辑放在服务器上,而不是放在可被分析的客户端代码里。这一观察两面都说得通:对依赖混淆的开发者是一句警告,也印证了 REA 这类工具能够触及那些逻辑。
安全研究员 Maurice Heumann 演示了规模化的 AI 辅助反编译一款 PC 游戏 —— 通过 Hex-Rays MCP 集成并行运行多个编码智能体,把游戏的大部分函数恢复为可读的 C++。该项目引起了游戏发行商的注意。
6.5 版与 Frida 的加入
这份6.5.0 版本说明把 Frida 支持描述为对 REA 触达范围的一次重大扩展。静态反编译读取的是躺在磁盘上的二进制。Frida 插桩则在活动进程内运行代码:智能体可以注入调用方提供的脚本、选择本地或远程目标、捕获脚本发出的消息,并取回有关脚本读取状态的诊断信息。
REA 的版本说明附带了一条与 Frida 集成相伴的警告:插桩会执行外来代码,而且是破坏性的,不是只读的。该工具适合分析用户拥有或获授权插桩的软件;把它用于受限制性许可约束的软件或在未经授权的情况下使用,会引出适用于任何形式逆向工程的同样的法律问题。
早先的安全评论指出,智能体能处理简单的未加壳程序,但在重度混淆或虚拟化的代码上不那么可靠 —— Frida 的动态跟踪能力部分缓解了这一局限,因为它在运行时观察行为,而不是从静态字节推断。
更广泛的 AI 反编译浪潮
REA 的增长恰逢一波 AI 辅助软件重建项目,这些项目已引来发行商的回应。
有十五年编程经验的开发者 Brandon Thomas 发布了 ArtCraft:七个免费开源应用,仿照 Photoshop、Illustrator、Premiere、Lightroom、Acrobat、After Effects 和 InDesign,用 Rust 和 Claude Opus 5.5 写成。Thomas 把该项目描述为洁净室重新实现。他没有使用 REA。对应 Photoshop 的 PhotoCraft 一周内积累了约 4.9 万 GitHub star。Thomas 起初承诺一个月内达到 100% 功能对等,后来改口为一年内 99%;外部评审者目前的估计把功能对等放在接近 25–35% 的水平。据 Decrypt 报道,一位早期测试者、像素画画师把这个 Photoshop 克隆描述为早期测试中「完全不可用」。
就 Adobe 而言,它在 2026 年 3 月同意支付 1.5 亿美元和解,与美国司法部了结关于其在订阅计划中隐藏提前终止费、违反消费者保护法的指控。Adobe 否认有不当行为。该公司表示:「尽管我们不同意政府的说法并否认任何不当行为。」这次和解的时机 —— 正值开源替代品开始在一周内吸引数万 star —— 已被跟踪创意软件竞争态势的观察者注意到。
Activision 用一份版权报告下架了一个针对某 PC 游戏的 AI 辅助反编译项目的视频。Bethesda 向一个 AI 构建的 Fallout 浏览器游戏的作者发出了停止侵权函。一个可在浏览器中游玩的《侠盗猎车手 V》版本于 10 月 6 日出现,数小时内就被下线。
法律允许什么,不允许什么
REA 的免责声明写明,该项目不会帮助用户复制专有软件或复现受保护的代码和资产。它所处的法律环境因司法辖区而异。
根据美国法律,《数字千年版权法》禁止规避技术保护措施。互操作性研究有一项法定例外,版权局也定期为安全研究授予豁免。法院还判定许可条款可以压过法定的逆向工程许可:在 Bowers 诉 Baystate Technologies 案(2003 年)中,联邦巡回上诉法院执行了一条禁止逆向工程的许可条款。
欧盟《软件指令》(2009/24/EC)采取了更宽松的做法:它允许为互操作性而反编译,并使试图禁止反编译的合同条款无效。中国最高人民法院发布了一份2020 年的商业秘密司法解释,认定对合法获得的产品进行逆向工程不构成侵犯商业秘密。
AI 引出了一个现行法律没有直接回答的结构性问题。传统的洁净室方法要求在分析原始代码的工程师与编写替代品的工程师之间设置防火墙。当同一个 AI 智能体在同一个会话里既反编译原件又编写重新实现时,这道防火墙并不存在。法院会把 AI 辅助的重新实现视为等同于传统洁净室流程,还是视为对它的违反,仍是一个悬而未决的问题。
谁在运行 REA,什么会上云
REA 的分析在本地运行。被检查的二进制不会作为 REA 流程的一部分离开用户的机器。会传到云端模型提供商的是反编译输出以及智能体据此构造的任何提示上下文 —— 而该提供商会对收到的内容适用自己的数据政策。
对于在保密协议下检查供应商软件的安全团队,把反编译代码传到云端推理端点本身就可能是一个合同问题,无论 REA 自己的文档怎么说。一些模型提供商还施加内容限制,可能打断对某些软件类别的分析。REA 的安全政策明确指出本地桥接不是沙箱:打开一个不可信的二进制,等于把解析责任连同用户的全部权限一起交给 Ghidra 或 Hopper。
REA 用一个 untrusted_content 来源标记标注从目标内容派生出的结果,并指示智能体把这类文本当作数据而非指令,报告任何疑似提示注入的企图。这个标记并不能阻止恶意二进制尝试注入;它提示智能体应对工具返回的内容保持怀疑。
早期的性能评估发现,在简单目标上,配备 REA 的智能体与普通智能体之间的差距很小,REA 在某些任务上还更慢。在复杂目标上 —— 层层叠叠的应用、混淆代码、多格式固件 —— 结构化的工具路由和覆盖声明才是区分因素。据Apidog 总结的一篇评测,一次早期测试发现在一个简单的 Mac 应用上相对标准智能体优势甚微,而对更复杂二进制的结构化分析则更清楚地显示出证据契约的价值。
版本号作为信号
REA 在六个月里从 0.2.1 走到 6.5.0。版本号反映的是发布节奏而非正式的兼容性承诺 —— 但这个节奏表明开发活跃。贡献了 DX-Ball 展示、并写过关于游戏重建逆向实践文章的 N0zoM1z0 提出过一个观点:手工逆向工程留下的不是对二进制的知识,而是对照二进制本身验证结果的技能。这种验证技能 —— 确认一个反编译出的函数确实能重新编译为原始字节的能力 —— 正是 REA 试图系统化的那一层。
无论 24 万 star 代表的是持续采用还是一时的尖峰,REA 提出的架构 —— 专业工具、结构化证据、明确的覆盖边界 —— 是对一个单纯 AI 反编译一直悬而未决的问题的具体回答:不是智能体能否读懂二进制,而是读者能否相信智能体说它发现了什么。