这两天一个名为 REA(Reverse Engineer Anything) 的开源项目火爆了。
今天它登顶了GitHub Trending 趋势榜第一,单日暴涨 25599 Stars,累计获得12万 Stars!
它能够让 AI Agent 帮助开发者研究各种软件,即使没有原始源代码,也可以尝试分析某个功能到底是怎么实现的。
比如,你看到别人 App 里有一个很好用的功能,也想在自己的产品里做一个类似版本。
过去普通开发者可能只能观察界面和交互,再自己摸索技术方案。如果想进一步研究软件内部实现,还需要掌握专业的逆向工程工具。
现在你可以直接告诉 Agent 想研究什么。Agent 会借助 REA 调用逆向工程工具,寻找相关代码和线索、分析运行逻辑,再根据分析结果,帮助你在自己的项目中实现类似功能。
X上的网友“爆裂队长NEXT”昨天发帖,他就用 Codex 配合 REA,逆向了某马桶小程序的蓝牙协议,半小时就做出一个遥控器塞进系统状态栏。电脑上一点,马桶盖真的翻起来了。

一个原本只能通过小程序控制的硬件功能,就这样被研究出来,又做成了自己的电脑端控制工具。
不过,这里需要强调一点,逆向工程本身存在复杂的法律边界。未经授权直接复制他人受版权保护的代码,甚至将这些内容公开传播,可能涉及侵权。
REA 官方也明确声明,工具仅用于合法的逆向研究、分析与重建,用户必须自行确保行为符合当地法律与软件许可协议。
很多商业软件并不开源,开发者拿到的往往只有安装包或可执行文件。
想知道里面某个功能是怎么实现的,就需要从已经编译完成的程序反过来研究它的内部结构和运行逻辑,这就是逆向工程。
传统逆向工程通常需要使用 Hopper、Ghidra、IDA 等专业工具。它们可以查看程序里的函数、汇编指令、伪代码和调用关系,但真正理解这些内容,依然需要大量专业知识。
REA 想做的,就是把其中大量繁琐的调查工作交给 AI Agent。
它并没有重新发明一个反编译器,而是把现有的专业逆向分析能力整合起来,通过 MCP 接口提供给 AI Agent。
这样一来,开发者不必自己拿着逆向工具一点点寻找线索,而是可以直接用自然语言告诉 Agent:
“帮我看看这个 App 的这个功能是怎么实现的。”
Agent 再自己调用对应工具展开调查。
相当于以前是开发者亲自操作各种逆向工具,现在给 AI 编程助手直接配上了一整套研究现有软件的工具。

看上别人 App 的功能,让
Agent 研究怎么实现
REA 把整个过程概括成三个阶段:Decompile(反编译)→ Understand(理解)→ Recreate(重新实现)。
REA 官方 README 就给出了一个很直观的使用示例。
假设你正在开发一款笔记软件,发现 Notes App 的离线搜索功能很好用,也想在自己的产品中实现类似能力。
你可以直接告诉 Agent:
研究 Notes App 的离线搜索功能,解释它是怎么实现的,然后使用 TypeScript 和 SQLite 给我的项目做一个类似版本。
接下来,Agent 会借助 REA 搜索程序中的函数、字符串、符号以及反编译结果,从中寻找可能与离线搜索有关的线索。
通过不断向下调查,Agent 可以尝试把一个原本隐藏在编译程序里的功能流程逐渐梳理出来。等搞清楚大致实现机制后,再进入最后一步:根据你的项目和技术栈,写一个自己的版本。
比如上面的案例中,就可以根据分析结果,使用 TypeScript 和 SQLite 重新设计一套离线搜索功能。
整个过程中,REA 负责给 Agent 提供逆向分析能力,Agent 负责理解需求、寻找线索、分析证据以及最终编写代码。
REA 能研究的也不只是传统的二进制程序。
对于原生桌面软件,它可以连接 Hopper、Ghidra 或 IDA 等工具,读取函数、汇编指令、伪代码、字符串以及交叉引用关系,帮助 Agent 追踪程序内部的执行逻辑。
对于 JavaScript 和 Electron 应用,REA 可以分析模块、导入关系、路由、IPC 通信和原生扩展等信息。
这类能力尤其适合研究大量基于 Electron 开发的桌面 App。
比如一个功能从前端界面触发之后,到底调用了哪个模块,又通过哪个 IPC 通道进入主进程,Agent 都可以顺着这些线索继续调查。
除此之外,REA 还提供 .NET 程序、浏览器应用、Android APK,以及 IPA、ASAR、固件等软件包和资源的分析能力。
不过,不同类型的目标支持的分析深度并不相同。例如,APK 的深入分析需要借助 JADX,固件分析可能依赖 Binwalk、Unblob 等工具,部分功能还受到操作系统限制。
这类工具还有一个很现实的问题,AI 告诉你的实现原理,到底是真的分析出来的,还是它根据经验猜的?
因此,REA比较强调基于实际分析结果寻找证据。Agent 可以调用工具查看具体函数、字符串、伪代码、调用关系和交叉引用,再根据这些信息形成判断。
不过逆向工程本身存在不确定性。反编译出来的代码不等于原始源代码,程序还可能存在代码混淆、动态加载、间接调用等情况。
即使有 REA,最终结论仍然需要结合实际证据和测试进行验证。
REA 的分析工具主要运行在本地环境中,不需要把目标 App 上传到 REA 提供的云端分析服务。
对于需要研究公司内部软件、旧程序或者其他敏感代码的开发团队来说,这一点比较重要。
开发者可以在自己的电脑上安装 Hopper、Ghidra、IDA 等工具,再让 Agent 通过 REA 调用这些本地分析能力。
不过,本地分析并不等于整个 AI 工作流完全离线。
如果使用云端模型,Agent 的提示词、工具返回结果或者部分上下文仍可能经过对应的模型服务。
安装 Node.js 和 npm 后,运行:
安装程序会引导用户选择需要接入的 AI Agent,例如 Codex、Claude Code 或 Cursor。
随后,REA 会展示准备修改的配置内容。用户确认后,程序会自动配置 MCP Server,并安装对应的 Agent Skill。
如果需要分析原生二进制程序,还可以根据提示连接 Hopper、Ghidra 等专业逆向工具。
配置完成后,重启对应的 AI 编程工具,就可以尝试使用 REA。例如:
弄清应用的搜索功能如何工作,展示证据,并为我的项目实现类似功能。
需要注意,REA 并不能保证自动复现任意 App 的功能,实际效果取决于目标程序、分析工具和 Agent 的能力。