Unlaunch – Nintendo DSiのcoldboot exploit by no$cash

GBA emulator No$gbaの開発者no$cash氏が、Nintendo DSiでDSiWareを使わない、初のColdbootc exploitを使うハックUnlaunchをリリースしていました。

Unlaunchの現在のバージョンはv0.6になります。

Unlaunchはbootcode exploit、いわゆるシステム自体に存在する脆弱性を利用したColdboot exploitでニンテンドーDSiでは初めてとなります。電源投入直後にexploitを発動でき、CPUのフルアクセスコントロールを実現できてしまいます。

ただし、最初にインストールするためにはSDカードにアクセスできるDSiWare exploitまたはハードウェア改造が必要です。その代わりUnlaunchはDSiの全モデル全リージョン全ファームウェア対応となっています。

Unlaunchを一旦インストールできてしまえばSDカードにあるbootcode.dsiというファイルを起動することができるようになります。同時に任天堂の純正ランチャーをRSA(署名チェック)やホワイトリストチェック、リージョンチェックを回避した形での起動も可能です。

インストール方法にはDSiWareを使う方法とハードウェア改造による方法の2種類ありますが、DSiのハードウェア改造方法はこのブログでも紹介したことがありません。一般的にはDSiWareを使う方法になります。

DSiWareを使うインストール方法は、DSiWare exploitを使ってunlaunch.dsiを起動しInstall Nowをクリックするだけです。インストールができれば、次回からは電源を入れると即時SDカードからbootcode.dsiを実行します。bootcode.dsiがSDカードにないと署名チェックなどをスキップするパッチを施した上でノーマルファームウェアで起動します。

注意事項としては、まだUnlaunchはテストが十分にできていないベータステージの状態です。今後のテストと調整がまだ必要なものだという認識の方が良さそうです。

このexploitの詳しい内容は起動すると出てくるようになっています。

dsi boot exploit writeup

書かれていることを要約すると…
「BOOTSTAGE2という起動ステップではランチャーのTITLE.TMDファイルをメモリーに読み込みます。ここでは実はファイルサイズの容量チェックのみで制限チェックがありません。そのため80KBのコードが読み込めるためタスクの上書きができます。それによりARM9のコードが実行可能でARM7のカスタムコードもリマッピングにより実行できます。これがUnlaunch.dsi bootcode exploitの仕組みです。」

今はまだEU版のファームウェア(1.4E)でのみのテストしか行われていません。ベータステージなのはそういった現状を反映させただけだと思われます。起動テストはNo$gbaで行なっていることも影響しているかもしれません。

また、動画しか公開されていませんがUnlaunchを利用してDSiのカスタムファームウェアHiyaCFWを起動することもできるようです。

公式サイトは
https://problemkaputt.de/gba.htm
公式サポートフォーラムが
http://4dsdev.kuribo64.net/thread.php?id=171
に用意されています。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする