世界を動かす技術を、日本語で。

ユニクロのTシャツに隠されたBashスクリプトの解読

概要

  • UniqloとAkamaiがコラボしたTシャツの裏面に 難読化されたBashスクリプト がプリント
  • スクリプトは イースターエッグ として、端末で実行すると「Peace for All」のメッセージがアニメーション表示
  • Base64エンコード されたスクリプトをデコードし、内容を解析
  • デザインやフォント選定にも 技術的・文化的こだわり
  • Akamaiの インターネットと平和への想い がデザインに込められている

Uniqlo × Akamai「Peace for All」Tシャツの裏側に隠されたBashスクリプト

  • 妻が「面白いTシャツを見つけた」と言い、 Uniqloの店舗で見つけたTシャツ を紹介
  • 背面には 難読化されたBashスクリプト が大きくプリントされているデザイン
  • スクリプトは Base64エンコード された文字列で、evalbase64 --decodeを使って実行する形式
  • 一見すると ウイルスの配布手法 にも見えるが、実際は平和のメッセージを伝えるイースターエッグ
  • デコード作業には OCR(Androidのサークル検索、Tesseract、Claude) を駆使して正確な文字起こしを実施

デコードされたBashスクリプトの内容

  • デコード後のスクリプトは 「PEACE FOR ALL」メッセージをアニメーション表示 する内容
    • 端末サイズを取得し、サイン波を描きながら文字をカラフルに表示
    • カーソル非表示や CTRL+C時のカーソル復帰 など、細やかな配慮
    • コメントには英語と日本語で 「おめでとうございます!隠されたサプライズを見つけました!」 と記載
  • 実行結果は カラフルなサイン波状の「Peace for All」ループアニメーション

デザイン・フォントと文化的背景

  • フロントデザインは 波括弧で囲まれたハートマーク を配置
  • コード部分のフォントは Consolas で、Windows環境でよく使われる特徴的な書体
    • Consolasの特徴:スラッシュの浅いゼロ、セリフなしの1、丸みのあるカーブ
  • Linuxやオープンソース文化、 インターネットの共通言語 としてのBashへのリスペクト
  • Akamaiの プレスリリース では、ベージュ色のTシャツが昔のPC筐体を連想させると解説
    • インターネットが世界をつなぐ手段であるという 平和のメッセージ を表現

技術的なこだわりとコミュニティ

  • Tシャツの別デザインには 不完全なコード も存在し、惜しい仕上がり
  • 他の技術者も既に解析 しており、ネット上でコミュニティ的な連鎖が生まれている
  • デザインを通じて 技術者同士の共感や発見の喜び を共有

まとめ:ファッションとテクノロジーの融合

  • Uniqlo×AkamaiのTシャツは、 ファッションとITカルチャー の融合例
  • イースターエッグを仕込むことで、 遊び心とメッセージ性 を両立
  • 技術者だけでなく、 一般層にもインターネットの平和的価値 を伝える試み

Hackerたちの意見

これをOCRするのは本当に大変で、自己主張する良いOCRやビジョンモデルのベンチマークにはいいかも。だけど、画像を良いビジョンモデルを持ったエージェントに渡して、行ごとに分けるように指示すれば、簡単にOCRできると思う。最新のClaudeやGPTのやつとかね。それに、スクリプト自体が難読化される前にLLMによって書かれたのかな?コメントがたくさんあるけど、この場合はまだ大丈夫だね :)

これは絶対LLMだね。人間があんなにコメントを書くわけないよ。

これ、LLMが書いたとは思えないな。いくつか目立つ点があるよ。お祝いのメッセージが英語と日本語の両方で書かれてるし、ハートの絵文字が一つだけ使われてる。シアンからオレンジへのグラデーションを意図してたみたいだけど、範囲がANSIブロックで始まって、256色ブロックの途中で終わってるから、256色のターミナルカラーは全然グラデーションになってない。ループの最後にスリープがないのも、LLMなら防御的に入れると思うんだよね。

Safariの画像からテキストをコピーする機能は、文字列のbase64部分を全て処理できるけど、最初の文字(Tの代わりにI)だけはダメなんだ。奇妙なことに、ハッシュバン部分を含めて全体の文字列をコピーしようとすると、パフォーマンスがかなり悪くなる。裏で何をしてるのか、すごく気になるね。

インターネットの人たちがOCRに夢中になってたのは、数ヶ月前にDoJが亡くなった人の大量のメールを公開したときだね。でも、それはラスタライズされたPDFとして出されたんだ。名前は今思い出せないけど、いろいろ気が散っててさ…

スクリプト自体は、難読化される前にLLMによって書かれたのかな?ここに示されているプロトタイプ[0]や、彼らのプロセスについての話を聞く限り、正直疑わしいな。特に、AIが出力を扱うのを難しくしようとしてるって言ってるし。[0] https://youtu.be/jocGLiecpjU?t=567

著者がいろんなOCRツールを使って、成功したり失敗したりしてから、結局一番良い結果を手動で修正するのに時間をかけてたのが面白いと思った。普通に入力すればよかったのにね。

「普通に入力する」方が、平均的な人間にはミスが多くなりそうだよね。

4行でほぼ2分かかったよ(しかもそのうちの1行で文字を見逃した!)。次に出会うバッシュTシャツに備えて、やっぱりOCRを選ぶかな…。

それ、私も思った…でも、私は雑誌や本から「ゲーム」をコピーするために、何時間もゴムのキーを叩いて育ったんだ!それから、誤字を直すのにさらに何時間もかけてたよ!

これ、私もやっちゃってるけど、私にとっては時間よりもイライラを最適化する感じかな。

パドルパドルOCRで試したら、完璧に読み取れたよ。Googleレンズを使った私のスマホのOCRもかなり良い抽出ができたけど、100%正確ではなかった。手でコピーするよりも、絶対に修正にかかる時間は少なくて済むと思う。著者が何を使ってたのか分からないけど、彼のOCRの試みについてもシェアしてくれたら良かったのに。多分、ちょっとしたOCRツールを試したんじゃないかな。

Hacker Newsで議論の続きを見る