最近,一个名为REA(Reverse Engineer Anything)的开源项目在GitHub上迅速走红。该工具声称可以让AI在没有源代码的情况下分析软件的内部功能并重现其部分能力。从办公软件Notion的剪贴板机制到经典游戏DX-Ball的声音算法,再到《东方幻想乡》的弹幕计算方式,项目的一系列演示引起了广泛的关注。截至10月17日,GitHub页面上的Star数量已经超过29万。科技博主Matthew Berman在社交媒体上表示:“软件的时代已经结束。”
随着这一热潮,各类AI逆向软件的案例不断涌现。有人利用REA重建Claude的幻灯片编辑器,也有人为家庭智能马桶开发新的控制工具,甚至有开发者推出了开源应用,旨在与Adobe和微软多款软件相竞争。然而,随着越来越多的开发者开始使用REA,一些问题也开始逐渐显露。在GitHub的公开测试中,有人发现AI会遗漏实际存在的函数调用,却仍然被标记为“完整”;有时甚至没有调用REA,而是提供未经验证的结果。REA的作者也参与了讨论,对工具调用方式和项目设计上的问题进行了回应。
与此同时,还有一个问题浮现:那些声称已被AI“逆向”的Adobe软件,实际上真的经过反编译了吗?逆向工程并不是一个新概念,REA的突然走红到底是为何?
要理解REA的意义,首先要区分它与传统逆向工具的不同。软件逆向工程是一项长期存在的技术,工程师们通常使用Ghidra、IDA、Hopper等专业工具分析软件。即便没有源代码,他们依然能通过反汇编和反编译等技术研究程序的指令、函数及调用关系,推断特定功能的实现方式。然而,这一过程通常需要相当的专业知识。由于软件编译后,原始代码中的变量名称、注释和部分结构信息会丢失,工程师需要在一堆晦涩的指令中寻找线索,并反复验证他们的判断。
REA并没有创新出什么全新的反编译技术。它主要通过模型上下文协议(MCP)将现有的逆向分析工具与Claude Code、Codex等AI编程智能体连接,使得AI能够结合开发者提出的问题进行工具调用、分析结果并尝试编写相应代码。
发表评论