离谱!网友上传了27年前的VB游戏的EXE文件后,Claude在5分钟内用Python一次性完成了游戏重建!!——从二进制

Claude 逆向工程能力突破天际!

一位Reddit用户上传了27年前用Visual Basic 4开发的EXE文件,Claude AI居然仅用5分钟就将其完美转换成了Python版本!

这不仅仅是简单的代码转换,而是真正从二进制文件中提取并重建了完整的功能。

如果你有幸曾编写查看过二进制文件,就会知道这事有多离谱!

从老旧EXE到完美运行的Python版本

这位自称是「祖父」的Reddit用户表示,其初衷原本只是想让自己2岁的孙女体验一下他在1997年用Visual Basic 4开发的小游戏。

但27年前的可执行文件要在现代系统上运行?没有古老的DLL和兼容层支持?

这几乎是不可能的任务。

于是他抱着试一试的心态,将这个古老的EXE文件上传给了Claude 3.7,并简单地询问:

「你能告诉我如何运行这个文件吗?我想它是用Visual Basic 4开发的。如果能转换成Python就太好了。」

接下来发生的事情让他震惊了:

Claude不仅给出了常规的安全警告,还进一步分析了二进制文件并识别出了具体组件:

  • 「Form1」

  • 「cntTimer」

  • 「btnExit」

  • 甚至检测出了嵌入的声音文件!(过分牛逼了……

然后,Claude完成了一个完美的Python转换版本,使用Pygame实现,并且:

  1. 完美复制了原始功能

  2. 提供了清晰的安装说明

  3. 第一次运行就成功了!

当这位用户请求绑定声音到空格键和添加彩色字体等调整时,Claude立即提供了完美的代码更新。

整个过程用时不到5分钟!

社区炸了

这个令人难以置信的案例很快在Twitter上引发了热议,无数人表示难以相信。

来感受下网友们的震撼:






不过,也有不少技术专家提出了质疑。

@Axel直接指出:

「.NET并不是真正的二进制。你可以很容易地反编译.NET文件,比逆向工程PE可执行文件要容易得多。@CommunityNotes」

@Foreign Bot Network也质疑道:

「问它『什么是汇编代码的前三行』或『什么是启动<某物>的命令』,你会发现它无法回答。它不理解代码,很可能甚至看不到代码。」

然而,有用户实际验证了这一功能。

@Loftwah分享了他成功使用exe文件的案例:

「这是错误的。我能够使用exe文件。https://claude.ai/share/30d811c0-1369-4475-87f4-4cb4e0d350d0」

@Matthew Schultz提供了技术解释:

「Claude可能能够从以P-Code模式编译的VB4可执行文件中提取组件名称,然后在Python中重建类似功能。这些旧EXE中的字符串可以在不完全反编译的情况下揭示表单/控件名称。」

@André Freitas澄清了实际情况:

「你们过度解读了整件事。Claude并没有反汇编任何东西。它从exe文件中读取了字符串,找到了表单名称、一些UI控件的名称和声音文件的名称。」

@Bob Pritchett还分享了他的类似经历:

「好主意!我刚刚拿出了我1989年的俄罗斯方块游戏(为MS-DOS编写的C语言),让ChatGPT o1将其转换为JavaScript并添加了一些复古音效。相当酷!」


技术原理:AI是如何完成这一壮举的?

从各方讨论来看,Claude并非完全「反编译」了EXE文件,而是通过分析可执行文件中的字符串资源,识别了关键组件。

@Shawn McAllister解释说这可能是P-Code可执行文件:

「我会说这是一个P-Code可执行文件。如果是这种情况,它看起来与如今反编译的npm没有太大区别。它们被编译成P-Code,然后使用解释器运行它们。」


@bot man补充道:

「直接回到VB基础,它的工作方式与C#相同,可执行文件被编译成一种中间语言,与源代码非常相似。」

这表明AI工具在处理某些类型的旧程序时,可能比我们想象的更强大。

尽管它无法完全理解深层汇编代码,但能够识别出关键组件名称和资源文件,并基于此重建功能。

AI 的逆向工程潜力

这个案例虽然有其局限性,但展示了AI在软件考古和代码迁移方面的潜力。

有用户已经开始思考更多可能性:

@neverwinsthegame询问:

「等等,它能将vba转换成go吗?」

@pimp morrison则想知道:

「这是否让我们有希望在win 10电脑上运行多年前在win xp时代关闭的旧应用程序?我说的是一个强大、复杂的音频工作站软件(确切地说是cakewalk)。」

尽管这个案例令人印象深刻,但我们也需要客观看待其局限性。

最后,@Nossy表达了对某些功能的怀疑:

「我可能会开始尝试用它做其他事情。但我怀疑Python能修改Windows对话框。」

无论如何,这个案例展示了AI在代码理解和迁移方面的进步。

虽然它可能算不上是完美的逆向工程,但能够从旧文件中提取关键信息并重建功能,对于保存老旧软件和游戏遗产具有重要意义。

AI 逆向工程的时代已经到来,你有什么古老的程序想要复活呢?

试试扫雷怎么样?

相关链接

  • 原始Reddit帖子:https://www.reddit.com/r/ClaudeAI/s/h5D8V7hkrt

  • 原作者分享的Claude对话:https://claude.ai/share/3eecebc5-ff9a-4363-a1e6-e5c245b81a16

  • @Loftwah验证的类似案例:https://claude.ai/share/30d811c0-1369-4475-87f4-4cb4e0d350d0

  • @Bob Pritchett的ChatGPT Tetris转换示例:https://chatgpt.com/canvas/shared/67bfb489606081918ee9091d25de2895


(文:AGI Hunt)

欢迎分享

发表评论