
通常情况下,在 Windows 中更改文件的扩展名并不会有什么好处。它只会让文件在无法解码内容的错误程序中打开。然而,[PortalRunner] 精心设计了一个文件,只需替换文件名末尾的扩展名,它就能表现为六种不同的文件类型。
基本概念很简单。[PortalRunner] 只是找到了一堆不同的文件格式,它们可以方便地整合到一个文件中,而不会相互干扰,也不会让加载这些文件的软件感到困惑。
这一切都归结于文件格式的工作原理。文件扩展名对于文件内容来说大多毫无意义——它们只是一种简写指南,以便操作系统能够确定哪个程序应该加载它们。事实上,大多数文件都包含文件头,用于向软件指明文件类型以及内容的格式。因此,你通常可以将 .PNG 文件重命名为 .JPEG 文件,它仍然可以加载——因为操作系统仍然会启动一个图像查看器应用程序,而该应用程序会根据文件头来判断它本质上是 PNG 而不是 JPEG,并以正确的方式进行处理。
[PortalRunner] 找到了一种合并各种格式文件头的方法,从而创建一个可以包含多种不同类型的文件。这个文件包含 PNG 图像、MP4 视频、PDF 文档、ZIP 压缩包、PowerPoint 演示文稿和 HTML 网页的数据。每种格式的数据块被集中到一个大文件中,合并后的头文件位于文件最顶部。实现这一功能所需的技巧限制了文件的可容纳内容,而且这些文件并非兼容所有软件……但它仍然是一个包含六种格式的文件。
这种方法并非对所有格式都有效。例如,你无法真正合并 GIF 或 PNG 文件,因为每种格式都要求不同的初始字符集,这些字符必须位于文件的最开头。不过,其他格式的要求没那么严格,只要操作得当,你就可以以一种基本有效的方式合并它们的文件头。
如果你喜欢深入研究文件格式二进制运作机制的细节,那么这是一个非常值得深入的项目。我们之前也见过[PortalRunner]做出过类似的令人费解的举动,比如他们把《传送门2》变成了一个网络服务器。视频稍后播放。
原文: https://hackaday.com/2025/08/08/one-file-six-formats-just-change-the-extension/