ツイッターで、marcan42氏がNintendo WiiでWiiメニューが起動する前にSDカードのファイルからWiiを起動させることができるBootMiiのソースコードを公開していました。
Some people were asking (and apparently decompiling…), so I pushed the BootMii loader code here: https://t.co/421YryvIwW
As I've said before, it's really just mini plus a main.c and a couple other minor things, and the ELF loader wrapper bit. In case it's useful to anyone.
— Hector Martin (@marcan42) August 8, 2022
何人かから問い合わせが来ている(しかも明らかにデコンパイルされている)ので、BootMiiのローダーのコードを公開します。https://github.com/fail0verflow/bootmii
以前からお話ししているように、main.cその他諸々とELFラッパーとかだけです。誰かの役には立つかも。
marcan42氏はfail0verflowチームのリポジトリでBootMiiのソースコードを公開していますが、BootMiiが公開された当時はTeam Twiizersとしてでした。
Wiiには
チップセットに書き込まれているboot0
NANDメモリー領域にあるboot1(書き換え不可領域にあるハッシュデータと照合が行われるため、弄くると確実にWiiがbrickする)
NANDメモリー領域にあり、ファームウェアアップデートで更新されるboot2
の3つが存在します。
電源投入によって最初にboot0が呼び出されて起動しNANDメモリーの冒頭にあるboot1を呼び出した後、boot1がNANDメモリーの特殊領域からboot2を読み出し、最後にboot2がシステムメニューを読み込んでWiiが起動します。
BootMiiはシステムの脆弱性を利用してBoot2として動作します。そのため純正のメニューの代わりにHomebrew Channelを起動させたりすることが可能になります。
今回公開されたソースコードはBootMiiで使われていた全てではなく、例えばGUI部分などは含まれていません。実際にWiiで起動させているboot2化したWADパッケージもありません。
marcan42氏の説明によると、誰かがBootMiiを解析し、そのソースコードを公開してもいいかと問い合わせてきたので、どうせ公開されるならとBootMiiのオープンソース化に踏み切ったようです。ローダー部分など基本的なソースコードはあるようですので、興味がある開発者の方にはうれしい話かもしれません。