HN 日本語サマリー

← 一覧へ戻る
プログラミング

Quakeシェアウェア、少し容量が多すぎるCD-ROM

Quake Shareware, a CD-ROM just a little too full (fabiensanglard.net)

458 pointsby shdon197 コメント

要約

1990年代半ば、id SoftwareはQuakeのシェアウェア版をリリースするにあたり、CD-ROMの余剰容量を埋めるため、他のゲームを暗号化して収録し、電話注文でアンロックする実験を行いました。この試みは、小売業者を排除し、直接販売を目指すものでしたが、リリースからわずか39日でハッカー集団GNOMONによってシステムが破られ、失敗に終わりました。この事件は、当時のソフトウェア保護技術の脆弱性と、ゲーム業界におけるCD-ROMの活用方法に関する初期の興味深い事例として語り継がれています。

全文翻訳

Fabien Sanglard - WEBSITE 2026年8月17日 Quakeシェアウェア、少し容量が多すぎるCD-ROM 90年代半ば、信じられないほど高価なIntel Pentium以外でPCに購入する最もクールなものの一つは、CD-ROMドライブでした。640 MiB(当時のPC HDDの3倍の容量)の容量を持つCDは、愛好家を、高解像度640x480 256色パレットインデックス付きの写真[1]、VOCサウンドトラック、そしてVideo For Windowsのバターのように滑らかな12fps 240x179動画[2][3](数秒間続く)の世界へと誘いました。 ビデオゲーム開発者にとって、CD-ROMは奇妙な存在でした。その容量は、彼らが制作できるアセットの量をはるかに超えていました。7th Guest (1993) や Phantasmagoria (1995) のような一部のタイトルは、フルモーションビデオ(画面の一部しかアニメーションできない世界で)を導入しました。いくつかは高品質な音楽を追加しました。この件に関する私の最も記憶に残る見解は、id Softwareのリード開発者、John Carmackのものでした。 人々はCDゲームに大量のデジタル音声とビデオが入っていることを期待しています [...] ここでのジョークは、もし私たちがDOOMのCD版を出すとしたら、ゲームと「DOOMの作り方」という1時間のドキュメンタリー映画を手に入れることになるだろうということです。John Carmack(1994年1月)「ATARI EXPLORER ONLINE」より 紙の上では良いアイデアだが、CDでは悪い 1996年6月、3年間のハードワークを経て、id Softwareは次のタイトル、Quakeを完成させました。前作と同様に、シェアウェア版とフルバージョンの両方をリリースする予定でした。ストレージの使用量はわずか22 MiBだったので、id Softwareの人々はCD-ROMの残りの容量を活用するというアイデアを思いつきました。なぜidのゲームカタログ全体の暗号化されたバージョンを含めないのか?これは中間業者を排除するだけでなく、電話一本とクレジットカードでゲーマーに即時アクセスを提供できるからです。このコンセプトは実装されました。CDは1996年7月3日に発表され[4]、8月30日にリリースされました[5]。ハッカーグループGNOMONは、わずか39日後にQuakecrk.zipをリリースしました[6]。このアーカイブには、CD-ROM上のすべてのゲームを復号化できるツール、QCRACK.EXEが含まれていました。 Quakeのシェアウェア小売実験は悲惨な結果 proved disastrous。理論上、idはゲーマーがシェアウェアを購入し、800番に電話して注文を受け、パスワードを受け取ってゲームの残りの部分をアンロックできるようにすることで、小売業者を排除するつもりでした。しかし、ゲーマーは時間を無駄にせず、シェアウェアをハッキングしてフルバージョンを無料でアンロックしました。さらに悪いことに、配布と注文処理のすべての退屈な側面が制御不能になっていました。絶望的な対策として、idは小売シェアウェアにブレーキをかけようとしましたが、手遅れでした。彼らは倉庫に約150,000枚のCDを抱えていました。David Kushner(Masters of Doom) 何が起こったのか?詳しく見ていきましょう! Quake小売シェアウェアCDの入手 rec.games.computer.quake.miscのusenetアーカイブのおかげで、その仕組みに関する詳細な議論[7]があります。ゲーマーは、何百ものCompUSA/Computer Cityの店舗のいずれかに行き、CDを9.95ドルで購入できました。 CompUSA店内(1996年) Computer City店内(1994年)(出典) QuakeシェアウェアCD シェアウェア製品としては、パッケージは実際にはかなり高品質でした。私のコピーでは、前面のステッカーにこれが「シェアウェアバージョン」であることが明記されており、フルゲームをアンロックするために1-800-669-9342(または1-800-ID-GAMES)に電話するように指示されています。電話番号は今日でも有効です。しかし、CompUSAは廃業したため、アンロックセンターにはつながりません。スーパーマーケットチェーンは2007年から2008年の間に閉鎖されました。アンロックオペレーターの代わりに、高齢者向けの製品を販売する自動メッセージが流れます。 オペレーターに連絡すると、ユーザーは「SOURCE CODE」も伝える必要がありました。これはアンロックコードの生成には関与しませんでした。これは、販売業者が取引手数料を請求するための方法だった可能性があります。eBayを閲覧すると、過去/現在の小売業者を示唆する名前を持つものが多数見つかりました。12-BSTBY BestBuy、24-CCITY Computer City、22-CUSA CompUSA、88、11-1111、38-EB Electronic Boutique、44-FTRSP Fry's Electronics、34-EGGH Egghead Software、56-MCTR Media Play/Musicland。 意図された仕組み 最初の連絡は洗練されていました。GUIはよくできていました。ユーザーはQuake Sharewareに直接ジャンプすることもできましたが、QUAKE UNLOCKをクリックすることもできました。CD-ROMにはID STUFFセクションもあり、idのゲームカタログを閲覧してそれらをアンロックすることができました。DOOMのいくつかのバージョン、HEXEN、HERETICがあります。 アンロックプロセスが開始されると、GUIはCODE NUMBER(私がCHALLENGEと呼ぶもの)を生成し、それをサービスエージェントに電話で伝える必要がありました。料金を支払うと、UNLOCK CODE NUMBER(私がSERIALと呼ぶもの)を受け取ります。両方の番号のチェックサムは、この原始的な固定電話通信モードに関連する問題を軽減しました。リプレイ攻撃を避けるために、GUIがアクティブな間、CHALLENGEは実行ごとに変更され、5分ごとにローテーションされます。画面には、id Softwareの初期の挑発的なトーン(「安すぎる人々」)の署名もありました。アンロック後はゲームをバックアップするようにという警告もあったことに注意してください。CHALLENGEにはある程度のランダム性が含まれていたため、SERIALを再利用する方法はありませんでした。 一見すると、プロセスは堅牢に見えました。ユーザーはアンロックサービスに電話してパスワードを取得する必要がありました。そして、そのパスワードがあって初めて最終的なアンロックが完了しました。では、何がうまくいかなかったのでしょうか? TestDrive、舞台裏 ロック/アンロックを処理するツールは、TestDrive Corp(アーカイブされたwww.testdrive.com)から提供されました。そのアイデアは、プレイヤーに「購入前に試す」方法を提供し、プログラムのフルバージョンをすぐに購入できるようにすることでした。彼らのエンクリプターは、.EXE実行可能ファイルを「変性」させる能力がありました。最初の32 KiBをカスタムヘッダーに置き換え(変性された実行可能ファイルを実行しようとすると「このアプリケーションは無効になっています」と表示される)、ファイルを.MJ3にリネームし、元のヘッダーを.ST3として暗号化し、シードを発行しました。 通常のEXE 変性されたMJ3 チャンク ST3 秘密のシード QuakeシェアウェアCDを私が生成したファイルマップ(分割表示推奨)で覗いてみましょう。そのツリーでは、利用可能な各ゲームのMJ3ファイルが見えます。PAGEMKRアーカイブ内のすべてのST3ファイルも見えます。MJ3をEXEゲームインストーラーに戻すために必要なものはすべて揃っていますが、おそらくSERIALから派生する秘密の「シード」だけがありません。 このプロセスには欠陥がないように説明されています。秘密のシードは、CHALLENGE/SERIALと紐付けられたアンロックサーバーから提供され、再利用できませんでした。しかし、ハッカーチームGNOMONは方法を見つけました。 QCRACK.EXEの仕組み Quake小売シェアウェアCDが店に並んでからわずか39日後の1996年10月8日(gnomon.nfo)にリリースされたQCRACK.EXEは、CHALLENGEが与えられた場合にSERIALを自動生成できるツールでした。 GNOMONグループのメンバーが理解したのは、電話で受け取ったSERIALには秘密が全く含まれていないということでした。それは単なる支払い証明でした。CDに付属するQUAKEアンロックプログラムFLOW.EXEは、それ自体でCHALLENGEからSERIALを生成できます。それがすべて行うのは、ローカルで生成されたSERIALとユーザーが入力したSERIALが一致することを確認することだけです! 保護メカニズム全体は、隠蔽によるセキュリティに依存しています。CHALLENGEからSERIALへのパイプラインは複雑ですが、2016年にrmolina[8]によってリバースエンジニアリングされました。11桁のCHALLENGEは、4桁のGAME-IDと、OFFSETとDEPTHを生み出す7桁の数字に分割されます。GAME-IDは暗号化されたデータベースSKU.17をインデックスし、コードネーム(例: doom2)を取得します。CODENAMEは、FLOWLIB.LIBアーカイブ内の512バイトのDOCファイル(例: DOOM2.DOC)を取得することを可能にします。CODENAMEと「Testdrive Corp.」という文字列と混合されると、DOCは508バイトのハードコードされたテーブルを、タイトル固有の254個の16ビット値のテーブルに変換します。DEPTHとOFFSETはそのテーブルを逆方向にウォークし、DEPTHをXORして単一の16ビット値MEMを生成します。SERIALは次のように計算されます: unlock = ((reverse7(GAME_ID) + MEM + 0x18) & 0x7F) + 0x83 * ((MEM ^ 0x1EA3) + 0x1700A1) で、先頭にBを付けて印刷されます。 その他の多くの欠陥 この件についてさらに調査するほど、担当者が結果を洗練させる時間がなかったように思われました。悪意に帰するのではなく、