WiiDatabaseで、Wiiの起動時にSDカードからWADファイルを読み込んで起動するSDBootのデモ動画が公開されたことを伝えていました。
先日Wiiのソースコードやハードウェア回路図などが流出しました。そもそも流出自体、ハッカーが任天堂のパートナーとしてWiiのシステムを開発したBroadOnという企業のサーバーをハッキングしてデータを入手したようです。
その流出したものの中に「SDカードからロードするboot2(マニュファクチュアリンクモード起動)」があり、
SDカードからロードするboot2は脆弱性使ってBootMiiで利用してたやつのオリジナルのものということですね、多分。
と書きました。
これはなんらかのexploitを使ったエントリーポイントを使わずにSDカードから直接データをロードする公式の仕組みの存在を示していました。当然それを利用した動きが出てくると予想していましたが、流出したおかげ(?)で早速それがSDBootとしてお目見えすることになりました。ただしまだ動画が公開された段階で実際にはリリース自体はされていません。
動画を公開したのはRedBees氏で、「SDBootのインストーラーはまだリリースされていませんが、動作することは間違いありません。」とコメントしています。
任天堂の工場での生産時に使われる、ファクトリーモードの”sd_boot”は、いわゆるboot2と呼ばれるものの特殊な仕組みで、通常はNANDメモリから読み出されて起動するシステムをSDカードから特殊なフォーマットのWADファイルとして読み込んで起動するというものです。署名されているためそのままインストールして使えることが大きなポイントになっています。
YouTubeの動画に「詳細はここを参照」として紹介されているRGDWikiには、sd_bootについて「sd_bootにはSDの読み込みコードにSDカード挿入時のコールドブートで任意のコードを実行できるというexploitがあり、更に署名済みsd_bootタイトルはどのWiiにもインストールできるため、Wiiのファームウェアにかかわらず、例えばBootMiiをboot2としてインストールできるようになる。」と書かれています。偽装署名が使えてしまうTrucha bugが対策されたWiiでもboot2としてBootMiiをインストールできることになります。
ここで、Wiiのブートシーケンスのおさらいをしておきます。
Wiiはチップに書き込まれている読み取り専用のboot0(変更不可)がNANDに格納されているboot1(書き換え不可領域にあるハッシュデータと照合が行われるため基本的には変更不可)をロードし、boot1が更にboot2(これはファームウェアアップデートで更新されるものであるため変更可能)をロードするという動作をします。最後のboot2がシステムメニューを読み込んでWiiを起動させます。
BootMiiはこのboot2を上書きして書き換えて使うものでしたが、Wiiのシステムバージョン4.2で対策されたためboot2をBootMiiとしてインストールできなくなりました(代わりにIOSとしてのインストールはできます)。SDBootは署名されているboot2を使うことからすべてのWiiに対して有効です。念のためですが、すべてのWiiといってもSDカードスロットがないWii miniの場合は事実上使えません。
今後SDBootをインストールするSDBoot installerがリリースされる予定です。ただ、大きな問題が2つあり、sd_bootのWADファイルはそもそも流出したものであるため公開すること自体に法的な問題が生じることと、SDカードは最近店舗ではほとんど見かけない普通のSDカード(SDHC / SDXCでは不可)が必要であることです。