导航菜单

2月19日HelloWorld和Hello苹果当你看到这张图片时你看到了什么

导读 我们都记得这件衣服是什么颜色的? 现象之后是Yanny vs Laurel。现在世界有一个新的谜题需要解决,它将让苹果用户与他们的长期竞争对手
2022-02-19 10:26:47

我们都记得“这件衣服是什么颜色的?” 现象之后是“Yanny vs. Laurel”。现在世界有一个新的谜题需要解决,它将让苹果用户与他们的长期竞争对手竞争。

以下是它的工作原理:在 PC 或 Android 手机(或任何其他非 Apple 产品)上查看下图。然后,在 Apple 设备上查看相同的图像。如果您已经在使用 Mac、iPhone 或 iPad,请切换到其他平台。

很整洁吧?在 PC 或 Android 手机上查看第一张图片时,您应该看到“HELLO WORLD”消息。在 Apple 设备上,相同的图像文件显示为“HELLO APPLE”。(有一个警告,我们将在下面更详细地讨论。)

第二张图片更令人迷惑。在非 Apple 设备上,图像显示的是旧的 IBM PC,但切换到 i 设备,您会看到旧的 Mac。

好的,那么这里到底发生了什么?让工程师和密码学家大卫布坎南——这个谜题背后的策划者——来解释一下:

“我在编写自己的多线程 PNG 解码器时发现了这一点。在思考我的设计时,我意识到我有一个可利用的实现错误,”布坎南在一篇博客文章中写道。“在得知 Apple 有自己的并行解码 PNG 实现后,我意识到他们犯了完全相同的错误!”

简而言之,解码图像有不同的方法。您可以在单个线程中执行此操作,也可以在分成块的并行线程中执行此操作(一种用于使程序运行得更快的方法),正如 Buchanan 所尝试的那样。他在自己的项目中发现了一个错误,然后发现苹果也犯了同样的错误。他确定可以渲染 PNG 文件,其中: decompress(a + b) != decompress(a) + decompress(b) (其中 != 表示不等于)。也就是说,分别解码然后放在一起的两个部分并不总是产生与一起解码的相同两个部分相同的结果。

“如果a在未压缩块的中途结束,则可能会发生这种情况。因此,图像可能有两种可能的解释,具体取决于并行或非并行解码器是否对其进行解码,”布坎南继续说道。

对于那些怀疑论者,当我将这些图像展示给我的兄弟,弗吉尼亚大学的研究科学家时,他对文件进行哈希处理(将它们转换为数字)并确认它们确实是相同的,证明布坎南没有切割根据您使用的浏览器或操作系统为您提供不同的文件。

如果您在复制这个谜题时遇到问题,可能与您的浏览器有关,因为该技巧依赖于 Apple 软件,而不是硬件。在多个设备和浏览器上查看图像后,我们了解到运行 Safari 的 Apple 产品将始终显示 HELLO APPLE,而使用其他浏览器的非 Apple 设备显示 HELLO WORLD。

但是一旦你开始混合和匹配,事情就会变得混乱。

在 Apple 的移动设备(iPad、iPhone)上使用非 Safari 浏览器时,会出现 HELLO APPLE 消息。奇怪的是,在 Mac 上使用相同的浏览器(例如 Chrome、Opera、Edge)会显示 HELLO WORLD 消息。虽然我们不能确定,但​​这表明为 App Store 编写的浏览器应用程序正在使用 Apple 的 PNG 渲染图像库,而在 macOS 上作为程序下载的浏览器使用自己的 PNG 解析器。

无论如何,如果你想从中获得乐趣,Buchanan 发布了一个名为“Ambiguous PNG Packer”的工具,它可以让任何人在通过 Apple 软件运行时创建看起来不同的图像。然而,我们应该警告,解析图像文件时的这些偏差可能是一个安全问题,布坎南认为“需要小心处理”。

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢:

最新文章: