Akamai在优衣库T恤上印了一段Base64编码的bash脚本,解码后是一个循环播放"和平"字样的终端动画彩蛋。

当妻子说"给你看件我看到的T恤"时,他没想到T恤背面竟然印着一段经过混淆处理的bash脚本,而且这段脚本的设计初衷是打印一条复活节彩蛋信息。

一件优衣库T恤背后的bash脚本,解码后是个和平彩蛋

这件T恤由Akamai设计,在优衣库门店销售,属于"和平为所有人"系列。T恤正面是花括号包裹的爱心图案,背面则是一大块字母数字编码。仔细观察这块编码,开头赫然是"#!/bin/bash",也就是bash脚本的标志性行。这段文本实际上是Base64编码的内容,通过eval和base64解码来执行。他跟妻子开玩笑说"这基本上就是人们传播病毒的方式",然后买下了这件T恤。

一件优衣库T恤背后的bash脚本,解码后是个和平彩蛋

将T恤上的编码转录到电脑里并不容易,因为Base64编码没有纠错机制,转录必须完全准确。他先后尝试了安卓系统自带的OCR功能、Tesseract光学字符识别软件,以及Claude,然后将三份结果进行比对,逐一修正差异。

一件优衣库T恤背后的bash脚本,解码后是个和平彩蛋

解码后的脚本是一个精心设计的彩蛋。

#!/bin/bash

# Congratulations! You found the easter egg! ❤️
# おめでとうございます!隠されたサプライズを見つけました!❤️

# Define the text to animate
text="♥PEACE♥FOR♥ALL♥PEACE♥FOR♥ALL♥PEACE♥FOR♥ALL♥PEACE♥FOR♥ALL♥PEACE♥FOR♥ALL♥"

# Get terminal dimensions
cols=$(tput cols)
lines=$(tput lines)

# Calculate the length of the text
text_length=${#text}

# Hide the cursor
tput civis

# Trap CTRL+C to show the cursor before exiting
trap "tput cnorm; exit" SIGINT

# Set frequency scaling factor
freq=0.2

# Infinite loop for continuous animation
for (( t=0; ; t+=1 )); do
# Extract one character at a time
char="${text:t % text_length:1}"

# Calculate the angle in radians
angle=$(echo "($t) * $freq" | bc -l)

# Calculate the sine of the angle
sine_value=$(echo "s($angle)" | bc -l)

# Calculate x position using the sine value
x=$(echo "($cols / 2) + ($cols / 4) * $sine_value" | bc -l)
x=$(printf "%.0f" "$x")

# Ensure x is within terminal bounds
if (( x < 0 )); then x=0; fi if (( x >= cols )); then x=$((cols - 1)); fi

# Calculate color gradient between 12 (cyan) and 208 (orange)
color_start=12
color_end=208
color_range=$((color_end - color_start))
color=$((color_start + (color_range * t / lines) % color_range))

# Print the character with 256-color support
echo -ne "�33[38;5;${color}m"$(tput cup $t $x)"$char�33[0m"

# Line feed to move downward
echo ""

done

脚本开头用英文和日文写着"恭喜你找到了彩蛋",并附带爱心表情符号。脚本的核心功能是在终端中循环播放一段动画,文字内容为"♥和平♥为♥所有人♥"的重复字符串。脚本通过计算正弦波函数来确定每个字符的横向位置,使文字以波浪形态在屏幕上移动,同时颜色在青色和橙色之间渐变循环,营造出流动的视觉效果。脚本还会自动获取终端的行列尺寸来适配显示区域,并包含隐藏光标、捕获Ctrl+C信号以恢复光标显示等细节处理。

一件优衣库T恤背后的bash脚本,解码后是个和平彩蛋

值得注意的是,同一系列中另一款设计的T恤上的代码是不完整的,导入语句被截断,结尾停在了"retu"而非"return",显然是从更长的代码块中裁剪出来的,根本无法编译运行。

一个有趣的细节是字体选择。T恤上的代码使用的字体几乎可以确定是Consolas,这是一种主要与Windows系统关联的编程字体。从T恤上可以观察到这种字体的典型特征:数字0带有很浅的斜线,数字1没有衬线,字母BDyg和数字2的曲线圆润。用在bash脚本上显得有些不寻常,因为Consolas并非Linux环境下常见的代码字体。

Akamai在T恤发布时发布了一份新闻稿,称这件T恤的设计是对互联网早期的致敬。浅棕色的T恤底色参照了早期互联网计算机的米色机箱,正面的爱心代表互联网为世界带来的积极影响,背面的代码则引用了Linux这一"互联网的开源语言"。Akamai表示,这种共同语言将公司与全球顶级品牌及其所服务的人们联系在一起,共同致力于建设一个更安全、更互联的世界。在解码这件T恤之前,他刻意没有搜索相关信息,后来发现此前已有人被同样的好奇心驱动做过类似的事情,这让他感到欣慰,也乐意将这条发现之链继续传递下去。

原文:https://tris.sherliker.net/blog/obfuscated-self-evaluating-bash-script-by-cdn-akamai-being-supplied-to-consumers-via-retail-stores/