GBATempで、Apache Thunder氏がニンテンドーDSiのシステムメニューに存在する脆弱性を利用してDSiをフルコントロールすることができるexploit RocketLauncherを発表していました。
実はかなり前にこのニュースを記事にしようと思ってはいたのですが、個人的に忙しかったのと、まあDSiだから後回しでいっかーと先送りした結果であって、内容としてはエポックメーキングな出来事です。
Apache Thunder氏はこの脆弱性を5月末に発見しました。
DSiにはDSゲームのホワイトリスト(起動可能なゲームのリスト)を持っていますが、そのセキュリティチェックが不完全で、その一部に大きな値を入れてやるとクラッシュすることからexploitの発見に至ったものです。
ちなみに名称がRocketLauncherなのは、名称がなんちゃらhaxばかりなことに対するアンチテーゼだそうです。そのRocketLauncherの詳細は以下です。
・exploitはDSiの1.4.0にのみ存在
・内蔵するROMを書き換えることができるFlashcartが必要(対応するFlashcartは後日発表。Acekard 2iなどが対応している模様)
・脆弱性はバッファオーバーフローで、DSiのホワイトリストにあるセクション3に存在する
・オーバーフローはARM7上で起こるためARM7のメモリーにコードを上書きできる
・オーバーフローにより割り込み要求が実現し、コードの実行が可能になる。ARM9をコントロールすることも可能。
ポイントは、exploitが最新ファームウェアが1.4.5のまま終息したDSiで1.4.0のみ有効だということです。何らかの方法でダウングレードができないと宝の持ち腐れです。
RocketLauncherの発表に呼応して、ダウングレードのためのDSi exploit発表が今後相継ぎそうです。
DSiのexploitといえば、(日本版にはありませんでしたが)DSiウェア『Sudoku』を使ったSudokuhaxがありました。当時は今の3DSほど多数のexploitは見つかっていませんし、そもそも『Sudoku』は対策版がリリースされてしまっています。
[FlipNote StudioとDSiウェブブラウザ]
MaxconsoleではDSiのexploitとしてFlipNote StudioとDSiブラウザのexploitが近く公開されることを伝えています。
詳細については明らかにされていませんが、TWLoaderやSRLoaderの開発者であるRobz8氏が『Sudoku』や他のDSiウェアexploitを持っていないというユーザーに対して次のようにコメントしています。
「Flipnote StudioやDSiブラウザも使えますよ」
実際exploitとしてはまだリリースはされていないようです。Flipnote StudioやDSiブラウザのexploitにはまだ解決できていない問題があるため全ファームウェアでその問題に対応できるようになるまでリリースはされないようです。
Flipnote Studioって日本版が存在するのか気になる方、大丈夫です。
Flipnote Studioというのは日本版の『うごくメモ帳』のことで、公式サイトによると現在は『うごくメモ帳 バージョン2.1』が配信中で、しかもニンテンドーDSi LLおよび2009年秋以降出荷のDSi本体には『うごくメモ帳 バージョン2.1』がプリインストールされ内蔵されています。内蔵されていない場合は、DSiショップで無料でダウンロードできます。
[必ずしもFlashcartが必須ではない]
Apache Thunder氏は当初、RocketLauncherには内蔵するROMを書き換えることができるFlashcartが必要としていましたが、市販のゲームカードを利用することも可能であることが分かりました。
Hackinformerでは、Apache Thunder氏がRocketLauncherのexploit起動にFlashcartだけでなく市販のゲームカードでも可能であることを公表したと伝えています。
RocketLauncherのために今更DSのFlashcartを購入するというのは、そもそもFlashcart販売が禁止されている日本ではなかなかハードルが高い話ですが、Apache Thunder氏は動画の中で市販のゲームカードを流用できることを明らかにしています。ただしFlashcartを使う方が「優れた方法」だそうです。
Flashcartは自動起動するトリガーにさえなってくれれば良いらしく、動画ではTWLNMenuという開発者向けアプリケーションを利用し『Super Mario 64』をFlashcartの代わりに使っているのが分かります。市販のゲームカードはこのアプリを利用することで自動起動させることができ、exploitを発動できるようです。
DSiはすでに生産が終了していますから本体を持っていない方は中古で手に入れるしかありません。そこまでしてDSiでRocketLauncherを試すべきなのかは微妙なところですが、既に持っている方にとっては押入れの片隅に追いやられて出番がないニンテンドーDSiを引っ張り出してくるだけの楽しみは得られそうです。