智猩猩AI整理 编辑: 没方 这两天一个名为 REA(Reverse Engineer Anything) 的开源项目火爆了。 今天它登顶了GitHub Trending 趋势榜第一,单日暴涨 25599 Stars,累计获得12万 Stars! 它能够让 AI Agent 帮助开发者研究各种软件,即使没有原始源代码,也可以尝试分析某个功能到底是怎么实现的。 比如,你看到别人 App 里有一个很好用的功能,也想在自己的产品里做一个类似版本。 过去普通开发者可能只能观察界面和交互,再自己摸索技术方案。如果想进一步研究软件内部实现,还需要掌握专业的逆向工程工具。 现在你可以直接告诉 Agent 想研究什么。Agent 会借助 REA 调用逆向工程工具,寻找相关代码和线索、分析运行逻辑,再根据分析结果,帮助你在自己的项目中实现类似功能。 X上的网友“爆裂队长NEXT”昨天发帖,他就用 Codex 配合 REA,逆向了某马桶小程序的蓝牙协议,半小时就做出一个遥控器塞进系统状态栏。电脑上一点,马桶盖真的翻起来了。 一个原本只能通过小程序控制的硬件功能,就这样被研究出来,又做成了自己的电脑端控制工具。 不过,这里需要强调一点, 逆向工程本身存在复杂的法律边界。未经授权直接复制他人受版权保护的代码,甚至将这些内容公开传播,可能涉及侵权 。 REA 官方也明确声明,工具仅用于合法的逆向研究、分析与重建, 用户必须自行确保行为符合当地法律与软件许可协议 。 01 没有源代码,也能让AI 研究软件 很多商业软件并不开源,开发者拿到的往往只有安装包或可执行文件。 想知道里面某个功能是怎么实现的,就需要从已经编译完成的程序反过来研究它的内部结构和运行逻辑,这就是逆向工程。 传统逆向工程通常需要使用 Hopper、Ghidra、IDA 等专业工具。它们可以查看程序里的函数、汇编指令、伪代码和调用关系,但真正理解这些内容,依然需要大量专业知识。 REA 想做的,就是把其中大量繁琐的调查工作交给 AI Agent。 它并没有重新发明一个反编译器,而是把现有的专业逆向分析能力整合起来,通过 MCP 接口提供给 AI Agent。 这样一来,开发者不必自己拿着逆向工具一点点寻找线索,而是可以直接用自然语言告诉 Agent: “帮我看看这个 App 的这个功能是怎么实现的。” Agent 再自己调用对应工具展开调查。 相当于以前是开发者亲自操作各种逆向工具,现在给 AI 编程助手直接配上了一整套研究现有软件的工具。 02 看上别人 App 的功能,让 Agent 研究怎么实现 REA 把整个过程概括成三个阶段:Decompile(反编译)→ Understand(理解)→ Recreate(重新实现)。 REA 官方 README 就给出了一个很直观的使用示例。 假设你正在开发一款笔记软件,发现 Notes App 的离线搜索功能很好用,也想在自己的产品中实现类似能力。 你可以直接告诉 Agent: 研究 Notes App 的离线搜索功能,解释它是怎么实现的,然后使用 TypeScript 和 SQLite 给我的项目做一个类似版本。 接下来,Agent 会借助 REA 搜索程序中的函数、字符串、符号以及反编译结果,从中寻找可能与离线搜索有关的线索。 通过不断向下调查,Agent 可以尝试把一个原本隐藏在编译程序里的功能流程逐渐梳理出来。等搞清楚大致实现机制后,再进入最后一步:根据你的项目和技术栈,写一个自己的版本。 比如上面的案例中,就可以根据分析结果,使用 TypeScript 和 SQLite 重新设计一套离线搜索功能。 整个过程中,REA 负责给 Agent 提供逆向分析能力,Agent 负责理解需求、寻找线索、分析证据以及最终编写代码。 03 从桌面App到网页, 都能研究 REA 能研究的也不只是传统的二进制程序。 对于原生桌面软件,它可以连接 Hopper、Ghidra 或 IDA 等工具,读取函数、汇编指令、伪代码、字符串以及交叉引用关系,帮助 Agent 追踪程序内部的执行逻辑。 对于 JavaScript 和 Electron 应用,REA 可以分析模块、导入关系、路由、IPC 通信和原生扩展等信息。 这类能力尤其适合研究大量基于 Electron 开发的桌面 App。 比如一个功能从前端界面触发之后,到底调用了哪个模块,又通过哪个 IPC 通道进入主进程,Agent 都可以顺着这些线索继续调查。 除此之外,REA 还提供 .NET 程序、浏览器应用、Android APK,以及 IPA、ASAR、固件等软件包和资源的分析能力。 不过,不同类型的目标支持的分析深度并不相同。例如,APK 的深入分析需要借助 JADX,固件分析可能依赖 Bin