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

Power Mac G3 ROMに隠された27年目のイースターエッグを見つける

概要

  • Power Macintosh G3 のROM内に未発見のイースターエッグを発見した経緯
  • HPOEリソースと「secret ROM image」文字列の関連性
  • Ghidraによる逆アセンブル解析の手順と発見内容
  • RAMディスク名変更による隠し画像の出現方法
  • Mac OS 9.0.4まで有効なイースターエッグの詳細

Power Macintosh G3 ROMに隠されたイースターエッグ発見記

  • Power Macintosh G3 (1997~1999年モデル)のROMをHex FiendとEric Harmonの ROM Fiend テンプレートで解析
  • HPOEリソース 内にJPEG画像(開発チームの集合写真)を発見
  • 既知情報だが、実機での表示方法はこれまで未解明
  • nittリソースID43 (Native 4.3)に「.Edisk secret ROM image The Team」等のパスカル文字列を発見
  • Keith Kaisershotの Pippin研究 より、SCSI Manager 4.3のPowerPCネイティブコードと判明

解析とイースターエッグの仕組み

  • nitt43は PowerPC PEF実行ファイル と判明(先頭12バイトが“Joy!peffpwpc”)
  • Ghidra で逆アセンブルし、文字列「secret ROM image」への参照を特定
  • .EDisk(RAMディスク)ドライバを利用し、RAMディスクのボリューム名が「secret ROM image」ならHPOEリソースID1のJPEG画像を抽出
  • 画像データを “The Team” というファイル(ttxtクリエイタ/JPEGタイプ)としてRAMディスクに保存
  • 画像ファイル作成後、ドライバ制御エントリにも何らかの処理を実施

イースターエッグの発動方法

  • RAMディスクを有効化 (Memoryコントロールパネル)
  • 再起動 後、RAMディスクアイコンを選択
  • 「ディスクを消去」 を選び、ボリューム名に「secret ROM image」と正確に入力
  • 「消去」クリックでRAMディスク内に「The Team」ファイルが生成
  • ダブルクリックで SimpleText がJPEG画像を表示
  • Mac OS 8.1~9.0.4 で動作確認(9.1以降は不可の可能性)

考察と謝辞

  • 画像の存在自体は知られていたが、 発動方法は未発見 だった
  • Steve Jobs復帰後(1997年)、イースターエッグ禁止令が出たため、これが最後期の隠し要素と推測
  • 発見協力者 ^alex に感謝
    • Infinite Mac上のエミュレータで再現・検証に成功
  • 当時のApple開発チーム関係者への呼びかけ

関連リンク・参考情報

  • Pierre Dandumont による2014年のHPOE画像記事
  • Keith Kaisershot のPippin SCSI Manager解析
  • Infinite Mac (DingusPPCエミュレータ)での実機再現方法

  • Power Macintosh G3 のROMには、 特定条件下でのみ出現する画像イースターエッグ が存在
  • RAMディスク名を「secret ROM image」に変更し消去 することで、「The Team」画像ファイルが現れる仕組み
  • Macの歴史的な隠し要素 として、今後も語り継がれる価値

Hackerたちの意見

どうやって誰かがこれを見つけたんだろう?こういうものが見つかるって、地球上の人類の集団的な生産性についての面白い発見だよね。みんなが知識の限界を押し広げてる。どこかの地下室で、ある科学者が世界のほんの一部を研究するために一生を捧げてるかもしれないし、もしかしたら素晴らしい発見につながるかも。人類、頑張れ!

生のファイルをじっくり見て、面白いパターンや文字列を探してる感じかな。古いOSの方がちょっと楽だと思う。現代のOSはすごく大きいからね(この記事で使われてるPowerMac G3のMacOS 8は120MB、MacOS 11は約35GB必要だし)。でも、楽しさが減っちゃうのもあるかも。この記事によると、このイースターエッグは1997年にジョブズが戻ってきたときに削除されたらしいし。

いったいどうやってこれを見つけたんだろう?この人たちはコンピュータ考古学者だね。正式なカテゴリーかはわからないけど、そう思ってる。彼らは過去のソフトウェアやハードウェアを深く掘り下げて、電子廃棄物の波に飲まれる前に貴重なものを取り戻してくれるんだ。

ResEditを使ったことある?すごく便利なツールで、今ならghidraみたいなツールが必要なプログラムやファイルの色んな部分を見せてくれるんだ。ResEditはAppleから出てるんだけど、めちゃくちゃ使いやすいよ。

これは「専門家を困らせる」にはうってつけだったのに…仕方ないね。

なんかクールだし、企業の背後には本当に人がいるってことを示してるよね。お金持ちの人たちが「俺が作った」って言って、小さな人たちの功績を奪うこともあるけど、本当の小さな人たちは歴史に「いや、これを実現するために魂を込めたのは俺たちだ」ってメモを残すんだよね。もちろん、スティーブ・ジョブズはこれを禁止するだろうけど。

俺はジョブズの大ファンじゃないけど、彼は時々描かれる悪役よりもずっと複雑だったと思う。この特定のトピックに関しては、むしろ彼がこれの発端だったんだよね:https://www.folklore.org/Signing_Party.html だから「もちろん」ってわけじゃないよ。あと、マイクロソフトは2000年代初頭から「イースターエッグ禁止」ポリシーを持ってたことも忘れないで。これは本当にジョブズのことじゃない。

もう、お願い。危機に瀕したアップルに戻ったジョブズが、秘匿されたアセンブリコードの中に埋もれた obscure ROM イメージを個人的に知っていたとは考えにくいよ。もっと可能性が高いのは、そういう「本当の人たち」の一人が掃除をしているときにそれを削除したってこと。ジョブズはアップルで働く素晴らしい人たちについて、定期的に公に話してたし、ウォルト・モスバーグと一緒に素晴らしいチームを作ることの重要性や創造性を育むことについて語ってた。

利益は無給労働の盗みだと固く信じてるけど…メタ給料の話になると、昔の「Mad Men」のシーンが思い出される。「それが金の意味だ!」ってやつ。

誰かがiPadでイースターエッグを共有したことがあって、プレイグラウンドアプリでちょっとしたコードを書いたら、ROMから次のロゴを引き出せたんだよね。あの時再現できたけど、それ以来参照を見つけられない。これ、6年くらい前の話。

「俺たちがアミガを作ったのに、あいつらが台無しにした!」ってメッセージを思い出すな。 https://arstechnica.com/gadgets/2007/12/amiga-history-part-5...

すごいね。誰かがこのイースターエッグのトリガー機構を見つけるまでにそんなに時間がかかったのが面白い。リバースエンジニアリングって難しいよね。どこで学べるか気になるな。どこから始めればいいの?オンラインチュートリアルとか本のおすすめある?

Hacker Newsで議論の続きを見る