ディスクイメージの復号化、ゼルダのセーブデータExploitと話題が絶えることがない
Wiiに、こんどはGCのハックで有名なtmbinc氏が、Wiiのハードウェア的なハックによって
Wiiで自作コードを実行することが可能だと発表しました。
・First thing which ever executes on the Wii is the “boot0″ code, which is probably stored inside the hollywood in a mask rom.
・boot0 loads the first 0×2F pages (”boot1″) from flash, decrypts them with a fixed aes key, calculates a SHA-1 hash (with some obscure bugs specialities, I still couldn’t calculate it by hand), and checks that versus the expected values, read from some internal memory.
・If the hash bytes in the “internal memory” is all-zero, the hash check is skipped. This is probably used for production, and maybe for devkits.
・boot1 then searches a certain header in flash, where it extracts specific information where to find boot2.
・At that position, some certificate chain is checked, and finally the boot2 “tmd” is verified, and the hash extracted.
・The boot2 payload is load from flash, decrypted, and hash-checked (against the hash from the boot2 tmd).
・boot2 will then load the firmware, or whatever. That’s not my region of interest at the moment. 🙂
適当な訳(誤訳あり)
まず最初にWiiのGPU「hollywood 」に内蔵された”boot0”コードが実行される。
boot0は内臓フラッシュの最初の0x2Fページのboot1を読み込んでAESキーを使って
それを復号化、SHA-1ハッシュを計算しそれらをチェック、いくつかの値をメモリに読み込む。
もし内部メモリにあるハッシュの値がすべて0であればチェックをスキップする。
たぶん開発機で使われているのでは。
boot1はboot2がどこにあるかについての情報をフラッシュのヘッダーから検索する。
ここでいくつかの証明がチェックされ、最終的にboot2の”tmd”はベリファイされ
ハッシュが抽出される。
boot2のペイロード(実データ部)はフラッシュから読み込まれ、復号化され、
ハッシュチェックされる。
boot2はファームウェアとかたぶんなんでも読み込む。
しかしそれは私の知るところではない^^
ちゃんと読んでないけどboot1の部分はバグだらけみたい。
PSPのIPLがハックされたみたいにWiiでもカスタムFWとか動くようになったらいいですね。ちょっと夢見すぎか^^;