2008年に任天堂から発売された携帯型ゲーム機「ニンテンドーDSi」には、ブラウザーのOperaを開発するOpera Softwareと共同開発した「ニンテンドーDSiブラウザー」が搭載されており、インターネットに接続することでウェブページを閲覧することができます。エンジニアのネイサン・ファーロウ氏が、このニンテンドーDSiブラウザーをハッキングして任意のコードを実行するエクスプロイトを発表しました。
Hacking the Nintendo DSi Browser | farlow.dev
https://farlow.dev/2023/03/02/hacking-the-nintendo-dsi-browser
stylehax: DSi browser exploit – YouTube
[embedded content]
ニンテンドーDSiブラウザーを起動。
Favorirtes(お気に入り)を開きます。
登録している「stylehax」にアクセス。
「エクスプロイト中……30秒以上このままだったら、再起動してもう一度試してください」というメッセージが表示されるので、しばらく待ちます。
すると、画面が一瞬点滅して消えます。
再起動後、明らかにニンテンドーDSiのものではない画面が表示されました。
ファーロウ氏は、最初はmelonDSというニンテンドーDSのエミュレーターでエクスプロイトを探そうとしたそうですが、うまくいかなかったとのこと。そこで、Opera 9.50のWindowsビルドを探し出してWineで実行し、ヒープ領域を利用したデバッグ機能を有効にした上でWebKitのレイアウトテストを行ったそうです。その上で、使用済みオブジェクトを見つけて破損したものを操作し、制御可能なアドレスにジャンプさせ、任意のコードを実行する方法を発見したとのこと。このやり方がmelonDSエミュレーターでうまくいったため、実物のニンテンドーDSiで検証したのが上記のムービーというわけです。
なお、ファーロウ氏は一連のコードをGitHubで公開しています。
GitHub – nathanfarlow/stylehax: Nintendo DSi browser exploit
https://github.com/nathanfarlow/stylehax
この記事のタイトルとURLをコピーする