Skip to content

第11章 Xbox向けソフトウェア開発

本書の焦点はハードウェアハッキングとセキュリティについて読者を教育することだが、Xboxハッキングの最終的なゴールのひとつはホームブリューソフトウェアを動かすことだ。本章では、執筆時点でXbox向けに進行中のホームブリューソフトウェアプロジェクトを紹介する。

Xbox-Linux

Xbox-Linuxプロジェクトのゴールは、GNU/LinuxおよびGNU/Linuxアプリケーションのユーザーフレンドリーかつ合法的なXboxハードウェアへの移植を実現することだ。世界中のハッカーたちの献身と貢献のおかげで、Xbox-Linuxプロジェクトはそのゴール達成に向けて大きな成果を上げてきた。Xbox-Linuxプロジェクトのコアチームの写真は図11-1に示す。また本章と第9章のコラムにはXbox-Linuxプロジェクトのチームメンバーへのインタビューが収録されている。(Xbox-Linuxプロジェクトのホームページは http://xbox-linux.sourceforge.net だ。)

重要な点として、Xbox-LinuxプロジェクトとそのコアハッカーたちはアンチMicrosoftではない。「いじる自由」を支持する人たちであり、幼稚なMicrosoft嫌いではない。テクノロジーを今日の姿にまで育てた思想と言論の自由を守ることにつながるアジェンダを持っている。

Xbox-LinuxはXboxにとっての究極のソフトウェアプロジェクトではない——それどころか、Xboxソフトウェアハッキングのほんの始まりにすぎない。なじみ深いGNU/Linux開発環境をXboxに移植することで、より多くのソフトウェアハッカーがXboxハッキングプロジェクトに参加できるようになる。GNU/Linuxによって、Xboxはフリーのオープンソースビデオゲームからワープロアプリケーション、Beowulf型コンピュータークラスター構築用のクラスタリングソフトウェアまで、多様なアプリケーションを実行できるようになる。

Xbox-Linuxのインストール

現時点でXbox-Linuxを動かすには、オルタネートファームウェアデバイスを使ってGNU/Linuxブート用のROMをインストールする必要がある。そのためにはXboxを開ける必要がある。LPCインターフェース経由でオルタネートファームウェアデバイスを構築・インストールする方法については第10章で説明している。現在、インストールが簡単なLPCインターフェース対応オルタネートファームウェアデバイスを販売しているベンダーがいくつかある。特に注目すべきは、Xodus/Matrixデバイスだ——市場初の完全はんだ不要インストール手順を実現したオルタネートファームウェアデバイスで、インストールに必要なツールはすべて第1章「保証を無効にする」に記載されており、Xodus/Matrixデバイス自体にも使いやすい説明書が付属している。

NOTE

Microsoftはマザーボードのレイアウトやセキュリティシステムを随時改訂する可能性がある。購入前に、デバイスベンダーに自分のシステムハードウェアとの互換性を確認すること。また、Xboxで標準のキーボードとマウスを使いたい場合は、XboxゲームポートをUSBに変換するケーブルが必要だ。これはLik-Sang(http://www.lik-sang.com)などのアフターマーケット小売業者で購入できるほか、第4章のステップバイステップガイドに従って自作することもできる。

オルタネートファームウェアデバイスをインストールする前に、GNU/Linuxカーネルを起動できるROMイメージを書き込む必要がある。「Cromwell」はXbox向けのオープンソース・クリーンルーム(つまりMicrosoftのコードを一切含まない)ブートROMで、GNU/Linuxをブートできる。重要な点として、Cromwellのソースコードとバイナリイメージに含まれる情報は、Xboxのネイティブな著作権保護機構を回避するためには使用できない。言い換えれば、Cromwellがいかなる著作権保護回避ツールであるかを主張することは難しい。(Cromwellは、Sourceforge.netサーバー上のXbox-Linuxウェブサイト http://xbox-linux.sourceforge.net からダウンロードできる。)

CromwellのROMをオルタネートファームウェアデバイスに書き込みXboxにインストールしたら、次はGNU/Linuxインストールイメージを CD/RWメディアに焼く必要がある。このイメージはXbox-Linuxウェブサイト(http://xbox-linux.sourceforge.net)からダウンロードできる。bzip2で圧縮された100MB超のISOイメージで、Xbox上でユーザーフレンドリーなGNU/Linuxディストリビューションを立ち上げるために必要なソフトウェア、インターフェース、ツールがすべて含まれている。このISOイメージを焼く際は、CDバーナーソフトのイメージ書き込みオプションを使うこと。ISOイメージをCD上に単独の大きなファイルとしてコピーしてはいけない。(ISOイメージはCDのビットパターンそのものなので、完全なファイルシステムの記述を含んでいる。ISOイメージをイメージとしてではなく通常のファイルとして焼くと、ISOイメージが新しいファイルシステムの中に封じ込められてしまい、ファイルシステムとしてではなく「ビットの袋」として見えるだけになる。)

Xbox-Linuxをブートするためのブートプログラムを焼いた2枚目のディスクも必要になる場合がある。このブートプログラムは、GNU/Linuxのメインインストールイメージをダウンロードしたのと同じ場所から入手できる小さなISOイメージとして提供されている。このブートイメージを使えば、ゲームを始めるのと同じようにXboxに入れるだけでLinuxインストールをブートできる。(別のブートディスクを使いたくない場合は、サードパーティのダッシュボードを使ってこのディスクの内容をハードドライブにコピーし、ハードドライブから直接Xbox-Linuxをブートすることもできる。)

CD/RWイメージをうまく焼くことは、Xbox-Linuxインストールで最も難しい部分のひとつかもしれない。Xbox内蔵のDVD-ROMドライブのレーザーは書き込み可能なCDメディアの読み取りに向いておらず、CD/RWイメージを作成するためのメディアの種類、バーナーの種類、バーナーの設定について非常に気難しい。さらに、レーザーの劣化具合はXboxごと、搭載されているドライブのモデルによって異なる。CD-Rメディアを安定して読めるXboxは少ないとユーザーたちは報告しており、CD/RWメディアを使う必要がある。また、ファイルシステムをリセットするだけで実際にはデータを消去しない「クイックイレーズ」ではなく、未使用の新品CD/RWか完全消去済みのCD/RWを使って、バーナーの設定を最低速に設定して焼くといい。

特定のCD/RWメディアを選ぶ前に、Xboxの通常のダッシュボードのWMAリッピングツールを使って、音楽を焼いたCD/RWの内容をハードドライブにコピーできるか試してみよう。それがエラーなく安定して動作するなら、そのCD/RWメディアはLinuxのインストールにも使えそうだ。(Xbox-Linuxのインストール問題の多くは、CD/RWドライブからのデータ読み取り問題に起因していることが判明している。)執筆時点では、プレスされたCD-ROMメディアで提供されているディストリビューションはない。Xbox-LinuxコミュニティではカスタムのCD-ROMイメージを注文する話も出ており、そうすればユーザーを悩ませてきるCD/RW関連の問題が解決されるだろう。(なお、前章で説明したとおり、書き込み可能なCDフォーマットとの互換性が高いアフターマーケットのDVD-ROMドライブをXboxに取り付けることも可能だ。)

NOTE

Xbox-Linuxは活発に開発が進んでいるプロジェクトで、常に進化し続けている。XboxにGNU/Linuxをインストールする最新の手順はSourceforgeのXbox-Linuxウェブサイトで見つかる。この手順は執筆時点で少なくとも6か国語に翻訳されている。Xbox-Linuxプロジェクトにスキルで貢献することに興味があるなら、SourceforgeのXbox-LinuxウェブサイトにToDoリストがあり、開発者のメーリングリストへの参加方法も記載されている。

📦 コラム:プロファイル — Michael Steil

Michaelさん、自己紹介をお願いします。

1979年にドイツのErding生まれ。現在、ミュンヘン工科大学でコンピュータサイエンスを学ぶ学生です。1学期生にアセンブリを教えており、来年は修士号を取得する予定です。10歳からコンピュータに関わってきて、最初のコンピュータはCommodore 64、その後すぐ386 PCに移りました。常にハードウェアとオペレーティングシステムに強い興味を持ち、ハードウェアアーキテクチャの多様性(Commodore、PC、Amiga、Macintoshなど)や、ゲームコンソールのような組み込みシステムに特に魅了されてきました。(「SEGA CD」にはCPUが3つ——Z80が1つとM68000が2つ——あることをご存じですか?)だから任天堂SNES、SEGA Genesis、任天堂ゲームボーイなど、多くのビデオゲームシステムを実験目的で購入しました。SEGA DrivecastのLinuxも見てみましたが、Sony PlayStation 2向けのLinuxは見たことがない——セット全体が僕には高すぎて、実験にも実用にも手が出ませんでした。

Xboxハッキング、特にXbox-Linuxプロジェクトに関わるようになったきっかけは?

2002年4月30日にXboxを購入しました。ハッキングに最適で、Linuxも動くはずだと確信して。システムソフトウェアを1〜2時間見た後(ゲームは一本も買いませんでした)、Xboxを分解しました。ハッキングの情報を探してみたら最初は失望——ハードドライブをPCに接続する方法と、ほとんど情報のないXbox Linuxのサイトしか見つかりませんでした。それで自分でXboxハッキングサイトを立ち上げて、ハードドライブをPCに接続して調べた情報を公開することにしました。

Xboxhacker.netとオリジナルのXbox Linuxメーリングリストには大いに助けられました。どちらも優秀なハッカーを集め、貴重な情報を発信していました。Xbox Linux Projectのもとのインフラに不満を感じて、5月23日にSourceforgeに移行することにしました。これで全コントリビューターがメンテナーを通さずに自由にウェブサイトに追加できるようになりました。とはいえ当時はまだすべてが理論上の話——モッドチップなしではブートローダーを完成させる以上のことはほとんどできませんでした。Andy GreenのFiltrorがすべてを加速させました。このMODのおかげでブートローダーを完成させ、Milosch Meriacの協力で非常に短期間でLinuxカーネルを適合させられました。

6月に「匿名の寄付者」から連絡があったことは、プロジェクトの知名度が上がりさらに多くのコントリビューターが集まっただけでなく、個人的な友人関係にもつながりました。BioXX(OpenXbox)モッドチップの作者Walter Meyerは、なんと自宅から20キロの距離に住んでいたんです。彼には特にボックスのMODで大いに助けてもらいました——僕自身はあまりはんだごてを使う人間じゃないので。

2002年12月、LinuxがXbox上で動くようになってから、Xbox Linuxコアチーム(Andy Green、Milosch Meriac、Franz Lehner、そして僕。Edgar Hucekは残念ながら来られなかった)がベルリンのChaos Computer Club Congressで初めて対面で集まりました。

僕のそもそもの動機は純粋に「楽しいから」「やることで多くを学べるから」でした。Microsoftに損害を与えたかったからではありません——ただ、Microsoftが購入したハードウェアで使いたいソフトウェアを使えなくすることで顧客を傷つけているとは思っており、だからこそXbox Linux Projectは特別な意義があると思っています。

僕たちは「アンチMS」でも「MSヘイター」でもありません。彼らの市場戦略が嫌いなだけで、だから彼らに対抗する合理的な理由がある、ということです。

Xboxのための200,000ドル賞金についてもっと教えてもらえますか?

この賞金が期待したものではなかったと思います。締め切りから1か月が経っても賞金はまだ配られておらず、いつ賞金がもらえるか聞いてきた人は一人もいませんでした。賞金がプレスを引き付け、知名度が上がり、より多くのハッカーが集まりました。でも誰もお金のためにやったわけじゃない。だから、Michael Robertsonに報酬をもらって仕事をしていると見られたくありません。締め切り後も僕たちが全員活動を続けているのがその証拠です。

「MIST X-Codeハック」について教えてください。

bunnieのオリジナルハックからしばらくして、AndyがMCPX ROMを完全に抽出しました。Steve、Paul、そして僕でコードを解析し始め、僕がその中に含まれているX-Codeインタープリターをリバースエンジニアリングしました。X-Codeの解釈ループを脱出するために使えるバグを探していたとき、コードの一部がすでに僕たちの攻撃を意識して書かれていることに気づきました。以下が僕の元のディスアセンブルです:

cmp ebx, 80000880 ; ISA Bridge, MCPX disable?
jnz short not_mcpx_disable
; BUG: too specific: bits 24 to 30
; undefined and ignored by PCI hardware!
and ecx, not 2   ; clear bit 1 (MCPX ROM will be
                 ; turned off by setting bit 1)
not_mcpx_disable:
mov eax, ebx
mov dx, 0CF8h
out dx, eax      ; PCI configuration address
add dl, 4
mov eax, ecx
out dx, eax      ; PCI configuration data
jmp short next_instruction

以前「PCI configuration」を扱っていたので、この攻撃チェックが過度に具体的すぎることがわかりました。似たようなコードでも同じ効果を持つけれど、このチェックをすり抜けられるんです。MS開発者は良いアイデアを持っていたけれど、実装が間違っていて、それによって彼らのアイデアを逆に教えてくれました。

Andy、Steve、Paulにアイデアを伝えると、短時間後に 0x88000880 が 0x80000880 と同じようにMCPX ROMをオフにし、インタープリターコードをメモリからマッピングアウトすることでインタープリターを終了できることを確認してくれました。

「プロジェクトB」

Xbox-Linuxの開発者たちが「プロジェクトB」と呼ぶ、ハードウェア改造なしにXbox-Linuxをインストール・起動する方法を見つけるための取り組みが進行中だ。プロジェクトBという名称は、Lindows社のCEO、Michael Robertsonが提供する200,000ドルの賞金の授与基準から来ている。「プロジェクトA」の賞金10万ドルは、ハードウェア改造でXbox上でLinuxを動かした最初のグループに授与された。残りの10万ドルはプロジェクトBを達成した個人またはグループに授与される。賞金の非対称な配分がプロジェクトB達成の難しさを示唆している。(プロジェクトBの詳細はSourceforgeのXbox-Linuxウェブサイト http://xbox-linux.sourceforge.net/articles.php?aid=2002354043211 にある。)

プロジェクトBに向けていくつかのアプローチが様々なグループによって追求されている。最も概念的にシンプルなアプローチは、Xboxゲームディスクの署名に使われている2048ビットのRSA鍵を素因数分解することだ。このアプローチはOperationProjectX(http://sourceforge.net/projects/opx)が分散コンピューティング方式で追求している。簡単に言うと、2048ビットのRSA鍵を素因数分解してMicrosoftの秘密鍵を明らかにできれば、Microsoftが通常のCDやCD/RWメディアからプログラムをロードする機能をXboxカーネルから削除しない限り、誰でもMicrosoftのデジタル署名を偽造してXbox向けの起動可能なゲームディスクを作れる。重要な点として、Microsoftは特殊なセキュリティ構造を持つ2層DVD-9フォーマットのディスクでゲームを出荷している。Xboxのファームウェアは、デジタル署名チェックに関わらず、この特定の構造を持つディスクからのみ起動するように設定できる。現在の一般的なDVDバーナーでは2層DVDを焼くことができないため、セキュリティ付きDVD-9メディアのみを実行可能ファイルのソースとして要求すれば、インターネットからの無償ダウンロードによるXbox-Linux配布に障壁が生じる。またこのアプローチの別の問題は、ブルートフォースサーチでXboxの秘密鍵を素因数分解できる可能性が非常に低いことだ。(第7章「セキュリティ入門」の囲み記事「非常に難しい問題」がこのタスクの計算難易度を伝えようとしている。)もしこのアプローチで秘密鍵が合理的な時間内に復元されれば、RSAアルゴリズムへの信頼は大きく損なわれるだろう。(とはいえ、宝くじは買わないと当たらない。CPUのアイドルサイクルを使って無料の分散素因数分解クライアントを動かすことは、Powerballのチケットよりずっと安上がりだ。)

RSA-2048ビット鍵の解読に関連した別のアプローチは、既存の署名済みXbox実行可能ファイルを、その暗号化ハッシュ値を変えずに有用な形で変更することだ。このような「構成的ハッシュ衝突」ができれば、改変された実行可能ファイルはデジタル署名チェックの観点からオリジナルと同一に見える。Xbox のデジタル署名アルゴリズムで使われているハッシュ関数はSHA-1だ。SHA-1は公知のアルゴリズム的弱点のない160ビットハッシュで、ハッシュのソースが固定されているため、衝突を見つけるにはランダムなバリエーションを約2160回試す必要がある。補足として、バースデー攻撃で難易度を280回のランダムなバリエーションに下げることはできない——同じ任意の値にハッシュされる2つのメッセージを見つけようとしているのではなく、特定のターゲットハッシュ(またはすべての公開Xbox ゲームタイトルから収集した非常に限られたターゲットハッシュのセット)を生成しようとしているからだ。したがってこのアプローチも「非常に難しい問題」の範疇に入る。

Figure 11-1: The Xbox-Linux core team at the 19th annual Chaos Computer Conference, held in Berlin, Germany.図11-1: ドイツ・ベルリンで開催された第19回Chaos Computer Conferenceに集まったXbox-Linuxコアチーム。後列がMichael Steil、前列左からAndy Green、Milosch Meriac、Franz Lehner。(写真提供: Gerhard Farfeleder。)

プロジェクトBへの別のアプローチは、Xboxのソフトウェアにセキュリティホールを見つけ、そのホールを使ってCPUの命令ポインタを掌握することだ。これがどう役立つか、次の例で考えてみよう。ネットワーク経由のバッファオーバーランエクスプロイトがあるゲームで発見され、任意のコード実行につながる可能性があるとする。XboxとネットワークでつながったPC上で動作するプログラムがこのエクスプロイトを使ってXboxにパケットを送り、Xbox-Linux向けのシンプルなブートローダーをインストールできる。このブートローダーはXboxのハードドライブやDVDドライブの指定された場所のコードを実行するプログラム程度でいい。XboxがデータをAcceptできるすべてのポート——USBやネットワークポート、ハードドライブ、DVD-ROMドライブを含む——がこの種の攻撃のベクターになりうる。ハードドライブやDVD-ROMドライブにイメージングされた壊れたセーブデータやファイル構造がXboxにユーザー開発のコードを実行させることもある。Microsoftの功績として、すべてのネットワーク通信とセーブゲームのプロトコルはかなり強力でよく検証されたセキュリティ技術を使っている。またMITでのMicrosoftによるXboxに関する発表で、すべてのゲームコードがバッファオーバーランチェッカーで検査されており、ゲームコードに意図的なバックドアを仕込んだことが判明したゲーム開発者にはMicrosoftが契約上の是正措置を取ると聞いた。これはXboxのコードベースが典型的なMicrosoftの製品よりも安全であることを示しており、それがハッカーにとって一層興味深い問題として映る理由だ。

📦 コラム:プロファイル — Milosch Meriac

自己紹介をお願いします。

経歴はかなりシンプルです。1976年にチェコスロバキアで生まれました。教師の母と土木技師の父は、共産主義政権による弾圧を逃れて冷戦中に西ドイツに逃れました。ドイツに来たとき僕は3歳でした。ドイツの幼稚園でドイツ語をすぐに覚えました。そこからは順風満帆——10歳のときに数か月ねだり続けて最初のコンピュータを手に入れました。そこからすべてが始まりました。

高校を卒業してドイツ連邦軍の兵役を経て、サイバネティクスとコンピュータサイエンスを学び始めましたが、3年後に大学を辞めて自分の会社を長期目標として集中することにしました。在学中にビジネスコネクションを築いておいたので、ドイツの様々な企業でフリーランサーとして働くのは容易でした。リバースエンジニアリングプロジェクト、小さなフットプリントのリアルタイム組み込みLinuxシステムの開発、WindowsシステムのリアルタイムExtensionなどのローレベルプログラミング、ドイツの有名企業向けのソフトウェアベースのハードディスクセーフガードの開発など。今はベルリンで彼女と楽しく暮らしています。

なぜハッキングするのですか?

プログラミングの経験を積むうちに、コンピュータの世界の美しく輝かしいと思っていたものが、実は脆いパッチワークであることに気づき始めました。

最初、ハッキングはゲームのようなものでした。コンピュータシステムの中を歩き回り、毎日新しいコードと可能性の世界を発見できました。たまにアプリケーション作者との決闘も楽しんで、コピープロテクションを解析・回避しようとしていました。チェスのような時もあれば、デスマッチのような時もありました。

自分の知識が成長していくのを感じ、同時に14歳の子どもにとっては高給取りの天才ハードコアプログラマーたちのセキュリティシステムを回避できることは当然大きな自信になりました。高校の頃にこの見方を改めました——学校の休暇中にいくつかの地元企業でプログラミングツールやアプリケーションを開発しながら、本物のプログラマーたちに出会ったのです——そして失望しました。彼らは神でも神のような存在でもありませんでした。

しばらくして、クールなデモを作ったり、アプリケーションXをハックしたり、Yにニッティなハックをしたりしてもどこかのサック・オブ・ライスを倒すよりも世界を変えられないことに気づきました。そこでもっと賢く対象を選び始めました——電話、コンピュータ、ネットワーク、衛星といった日常生活のテクノロジーを。平均的なユーザーにテクノロジーを説明したり、企業が製品を安全にするのを助けたりすることで、物事を変える力があることを発見しました。

今、ホワイトハットハッカーとしての自分の力を自覚しています。今日の誰もがITの影響を受けている——監視技術、データマイニング、情報戦争、デジタルミレニアム著作権法(DMCA)、TCPA、デジタル著作権管理、著作権と特許法の新解釈がモンスーン後のキノコのように増殖しています。かつてのように僕はこれらの美しく輝かしいものの裏を覗きたい——そして彼らが僕たちを見つける前にバグと罠を見つけたいと思っています。

Xbox-Linuxプロジェクトでの経験を教えてください。

Xbox Linuxプロジェクトに参加し、カーネルの動作を実現するために貢献しました。Xboxアーキテクチャが通常のPCと比べていくつかの落とし穴や違いがあるため、これは容易ではありませんでした。Microsoft XboxのLinuxディストリビューションの初期版を作りました。フラッシュメモリは1MBしかなく、ハードドライブはまだアンロックされていなかったので、完全なディストリビューションとカーネルをそこに収める必要があって、これは重要な取り組みでした。またAndy GreenのFiltrorデバイス用のコンソールドライバーも提供しました。これで彼のデバイスをリモートインターフェースとして使ってカーネルの起動メッセージを見てLinuxコンソールを得られるようになりました。このディストリビューションにはネットワークドライバー、サウンドカードドライバー、MP3サポート、TelnetサーバーやWebサーバー、NFSサポート、そして広範な標準Linuxツールがすでに含まれていました。これによってカスタムハードウェアを手放し、何百人もの人がコードコントリビューターかテスターとしてプロジェクトに参加できるようになりました。まだスクリーン出力がなかったので、Xbox Linuxカーネルにフレームバッファインターフェースを追加し、他にも多くの貢献をしました。

貢献する開発者の数が急速に増え始めました。世界中から素晴らしい協力をいただいてXbox Linuxを実現できています。DMCAなどの米国の法的不確実性を恐れて姿を隠している人もいれば、自由に貢献できる人もいます。

その他にコメントはありますか?

なぜ僕のような大人がこのXboxというおもちゃに関わっているのか不思議に思う人もいるでしょう。もちろん人によって理由は違うし、僕の理由はスキルを向上させてより新しいテクノロジーについて学ぶことです。Microsoft Xboxは、たとえば技術的・社会的含意を持つTCPA/Palladium保護コンピュータの前身です。ユーザーへの制約なしにより安全なコンピュータシステムの研究をするための素晴らしい遊び場です。

最大の理由のひとつはコミュニティです。この輝かしいオタクたちと一緒に作業するのは本当に楽しく、大きな喜びです——オンラインでも、特に上質なビールのパブでオフラインで集まるときも。コミュニティが日々強くなっていることに毎日驚かされます。これを可能にしてくれたすべての人に感謝!

最近、Electronic Artsの「007: Agent Under Fire」ゲームのセーブゲーム処理方法にバッファオーバーランエクスプロイトが発見された。このエクスプロイトは2003年3月29日に「habibi_xbox」というハッカーによってXboxHacker.net BBSへの投稿で最初に明かされた。重要な点として、このエクスプロイトは未公開の数のゲームで確認されたが、「007: Agent Under Fire」が明示的に名指しされた唯一のゲームだった。このエクスプロイトはチェックされていない文字列を利用して、一連のカーネルパッチを挿入する短いセグメント(数百バイト)のコードを実行する。このハックには、意図されたXbox-Linuxターゲット以外のことに使いにくくする様々な対策が含まれていた。たとえばこのハックは、デジタル署名の検証に使われるオリジナルのXbox RSA公開鍵を新しい公開鍵に差し替えながら、デジタル署名チェックアルゴリズム自体はパッチを当てないままにする。ハックの一部として提供されるXbox-Linuxブートローダーだけが、対応する新しい秘密鍵で適切に署名されている。他のハッカーがこのハックを使って他の実行可能ファイルを動かすには、新しい公開鍵を素因数分解する必要がある。また「007: Agent Under Fire」ゲーム自体がすべてのセーブゲームに独自のデジタル署名チェックを行うため、ハックされたセーブゲームファイル内のエクスプロイトコードの変更も簡単ではない。このようなセキュリティ対策をハックに含めるのは称賛に値する決断で、Microsoftの利益を守ることでXbox-Linuxプロジェクトを守るためのものだ。

将来を見据えると、プロジェクトBの成功はXboxハッキングの新時代を開くか、あるいはXboxハッキングの終焉を意味するかのどちらかかもしれない。プロジェクトBのハッカーたちはMicrosoftの利益を守ろうと社会的な良識と誠意を示してきたが、悪意あるハッカーがそのハックをリバースエンジニアリングして最終的にそのテクニックをMicrosoftに友好的でない形で再現する方法を見つけることを防ぐことは不可能だ。最終結果は、Microsoftによるすべてのハッキング活動への厳しい取り締まり、あるいはDreamcastの著作権侵害の惨事でSegaが撤退したように収益が断たれてビデオゲームビジネスからMicrosoftが撤退するか、のどちらかになりうる。あるいは、Microsoftはビジネスにさらにお金を注ぎ込み、既知のセキュリティホールへのパッチと対策を組み込んだ再設計されたコンソールをリリースすることも選べる。結果は今後数か月の展開に大きく依存する。ただし、Xboxの深い値下げが見えており、大幅に再設計された「シュリンク」バージョンのコンソールの噂が出回っている今、Microsoftの近期戦略は、フェアユースや著作権侵害を食い止めることよりも市場を席巻することにエネルギーを集中しているように見える。どのみち、PlayStation 2やGameCubeが1台売れることのほうが、GNU/Linuxを動かすためにXboxが1台改造されること——さらには著作権侵害ゲームのためにXboxが改造されること——よりもMicrosoftのビジネスへの悪影響が大きいだろう。

OpenXDK

XboxMediaPlayerやMAME-X(Xbox向けMultiple Arcade Machine Emulator)など、Xboxネイティブのゲームプラットフォーム向けに多くの興味深く有用なプロジェクトが開発されてきた。残念ながら、これらのプログラムはMicrosoft Xbox SDKの非公認版を使って開発された。MicrosoftのXbox SDKは承認を受けたライセンス取得済みの開発者だけに提供されることになっているが、コンソールが発売される前にSDKが流出し、それ以来多くの人が流出したXbox SDKを使って独自のXboxプログラムを作ってきた。プロプライエタリなXbox SDKは便利で使いやすいが、使用は技術的に違法でもある。ネイティブXboxプラットフォーム向けの合法的なSDKがないことで、オープンソース開発者の大規模なベースを引き付けることが難しくなっている。

OpenXDKプロジェクトはXbox SDKに対する合法的な代替手段の必要性に応えるために作られた。OpenXDKの表明されたゴールは、Xbox実行可能ファイル(XBE)を作成するための合法的な開発キットを作ることだ。OpenXDKによって、適切なデジタル署名を付与することでバニラなXboxで動作できるネイティブXBEファイルを作成できるようになる。その適切なデジタル署名が現時点ではまだ不明なため、この作業はOpenXDKを使って開発されたプログラムとの相互運用性を可能にする合法的な技術を見越して行われている。

その有用性にもかかわらず、OpenXDKプロジェクトはまだ初期段階で開発者を求めている。OpenXDKプロジェクトの詳細は http://openxdk.sourceforge.net にある。OpenXDKのプロジェクトマネージャーはDan Johnson(SiliconIceとも呼ばれる、XboxHacker BBSの作者)とAaron Robinson(causticとも呼ばれる。causticはCXBX実行可能ファイルリンカーとCXBE Xboxエミュレータプロジェクトも率いている)だ。

*原著*: *Hacking the Xbox: An Introduction to Reverse Engineering* © 2003 Xenatera LLC
*著者*: Andrew "bunnie" Huang | *出版*: No Starch Press
*日本語訳・レビュー*: ニコ技深圳コミュニティ / 高須正和(@tks) — [https://takasumasakazu.net](https://takasumasakazu.net) — CC BY-NC-SA 1.0
*注記*: 本翻訳は、原著の Creative Commons ライセンス条件に従って公開する翻訳コントリビューションであり、著者 bunnie からも歓迎のコメントをいただいています。出版社による公式日本語版ではありません。

ニコ技深圳コミュニティ / 高須正和(@tks)による日本語訳コントリビューションです。著者 bunnie からも歓迎のコメントをいただいています。原著は Andrew 'bunnie' Huang および No Starch Press に帰属します。