BlackHalo logo
Published on

优衣库T恤暗藏混淆Bash脚本,竟是Akamai彩蛋

Authors
  • Name
    speerer
    tris.sherliker.net
优衣库T恤背后的混淆Bash脚本印刷图案
头图来源: Wikimedia Commons(请在文件页查看原作者与许可条款)

一场意外的技术发现

一位名叫Tris Sherliker的技术爱好者在博客中分享了一段有趣的经历。他的妻子在优衣库看到一件T恤,并告诉他背后的设计“绝对是你会感兴趣的”。结果,那件T恤的背面印满了密密麻麻的字母和符号,仔细一看,竟然以 #!/bin/bash(即 shebang)开头。这显然是一个用 Base64 编码的混淆脚本,被设计成在终端中执行后打印一个复活节彩蛋消息。

  • 这件T恤是Akamai公司为支持其“Peace for All”公益活动而设计的,正面有一个花括号中的心形图案。
  • 作者感叹,这种编码方式“基本上就是黑客用来传播病毒的手法”,并立刻买下了这件T恤。

从OCR到完整脚本的艰辛之路

将T恤上的代码准确转录到电脑中并非易事,因为Base64编码没有任何纠错能力,必须一字不差。作者使用了三种方法同时进行识别并相互比对:

  • 第一种是Android上的“圈选搜索”功能自带的OCR。
  • 第二种是开源的Tesseract OCR引擎。
  • 第三种是Claude AI模型。

通过对比三者的输出差异,并让Claude生成差异位置表逐一校对,作者最终得到了完整的Base64字符串。经过解码,一段整洁、带有友好注释的Bash脚本呈现在眼前。

脚本功能:一个正弦波动画彩蛋

解码后的脚本是一个充满惊喜的“彩蛋”程序。它的核心逻辑非常简单,但视觉效果却很酷:

  • 定义动画文本:脚本将一个字符串 ♥PEACE♥FOR♥ALL♥ 重复拼接,作为循环显示的文本。
  • 获取终端信息:自动获取当前终端窗口的宽度(列数)和高度(行数)。
  • 隐藏光标并设置陷阱:隐藏终端光标,并捕获 Ctrl+C 信号,确保退出时恢复光标显示。
  • 无限循环与正弦波运动:进入无限循环。每次循环中,它会根据时间变量 t 计算正弦值,从而动态计算出字符在屏幕上的横坐标 x。这使得字符在屏幕上从左到右往复摆动,形成正弦波轨迹。
  • 动态颜色渐变:字符的颜色会在青色(12)和橙色(208)之间平滑过渡。每打印一行,颜色值会根据循环次数和终端行数进行取模计算,产生渐变效果。
  • 逐字符打印:每次循环从文本字符串中取出一个字符,使用256色终端转义序列将其着色后,打印在计算出的 x 坐标位置,并在打印后换行,使下一行的字符位置下移。

最终,这个脚本会在终端中循环滚动显示一行色彩流动、按正弦波轨迹运动的“PEACE FOR ALL”字样。

字体与设计的巧合

文章还提到了一个有趣的细节:T恤上使用的字体。作者最初认为是微软Windows系统自带的Consolas字体,但随后被Hacker News上的用户纠正,指出实际上是谷歌的开源字体Roboto Mono。作者坦言“优衣库可能用的是Windows系统”,并分享了曾与字体设计师Lucas de Groot就法律案件通信的经历。

Akamai的官方解读与社区反响

Akamai公司曾为这件T恤发布过官方新闻稿,解释了设计背后的理念:

  • 轻褐色代表早期互联网电脑的“米色盒子”外壳。
  • 正面的心形象征着互联网为世界带来的善意。
  • 背面的代码代表Linux,即“互联网的开源语言”,象征着连接世界。

作者表示,他并不是第一个发现并解码这个彩蛋的人。相关讨论在Hacker News上也引发了热烈反响,包括设计师和其他观察者的评论。

脚本的完整代码示例

为了让读者更直观地理解,作者在文章中直接贴出了解码后完整的Bash脚本代码,并附上了终端运行效果的截图。这段代码充分展示了Shell脚本在创意编程上的可能性,将命令行与艺术结合在一起。

原标题:Decoding the obfuscated bash script on a Uniqlo t-shirt。 HN 原始发布时间:2026年7月8日星期三。当前记录为 1312 分、209 条评论。

阅读原文 · 查看 HN 讨论