exploitを発動させる新エントリーポイント BrowserHaxとThemeHax by Yellows8





Yellows8氏がBrowserHaxとThemeHaxをリリースしたことを先日お伝えしましたが、その際「GitHubベースで記事にしようとしております」と書きました。実は大まかな文章はできていたのですが、まとまりがなかったので記事として公開しておりませんでした。
せっかく書いたものなので、ちょっとだけ整理して記事として公開します。呼称が統一されていない上にexploitの種類が複数あるので理解するのに時間がかかりました。基本的に用語は3DSBrewに合わせています。

ThemeHax(対応する3DSのファームウェアは9.0から10.1)は、すでにHomebrew launcherを何らかのハックで過去にインストールしてある状態で3DS起動時にLトリガーを押しっぱなしにするとhblauncher payloadを読み込んで直接Homebrew launcherを起動できるというものです。起動のたびに『Cubic Ninja』などのゲームカードが不要になるというメリットがあります。HomeMenuHaxとも呼ばれます。

BrowserHax(対応する3DSのファームウェアは9.0から10.1)で、ThemeHaxとは異なり過去に Homebrew launcherをインストールしていない3DSでも使えます。ブラウザを使いますのでインターネット接続環境は必須です。

これらが出てきた話の流れはsmea氏のツイートを読むとよく分かります。


まず、yellows8氏が旧3DS向けにはWebkitのバグを、新3DS向けにはStagefrightのバグを利用した。


次にyellows8氏はHomeMenuHaxを編み出した。そう、HOMEメニューこそがエントリーポイント。今までの中で最も使い易いよね。


基本的にはそれが対策されるまではninjhaxやtubehax、ironhax、oot3dhax、smashhaxは要らなくなる。使うのはブラウザとHOMEメニューだけ。

BrowserHax

smea氏の言う旧3DS向けのWebkitのバグというのが3ds webkithaxで、新3DS向けのStagefrightのバグというのがbrowserhax frightです。

3ds webkithaxは実際には新旧3DS向けのそれぞれのexploitが含まれているため形の上では両対応しています。安定して発動しないため動作しない場合は何度かやり直す必要があります。

旧型向けは通称”sliderhax”というexploitで、10.1.0-27まで対応しています。一方で新型向けは9.9.0-26までしか対応していません。この脆弱性は旧型3DSにも存在していますが、旧型は10.1.0-27でもまだそれが残っていて、新型に限り10.1.0-27で先に対策されてしまっていたようです。したがって事実上これを旧型3DS向けにしています。

browserhax frightはNew3DSのインターネットブラウザのexploitです。libstagefright におけるオーバーフロー問題として知られている脆弱性で、不正な MP4 動画の解析時に生じる整数オーバーフローによりコードの実行を許容してしまうクラッシュを引き起こすものです。(参考:Mozilla Foundation セキュリティアドバイザリ 2015-83)

そもそもこの脆弱性は今年の8月にその存在が明らかになったものですので、対策はこれからのはずでした。New3DSのブラウザは未対策ですので最新バージョンの10.1.0-27でもこの脆弱性は存在します。yellows8氏はそれに早々と目をつけたようです。

MP4ファイルの解析がトリガーですので、ユーザーが何らかの操作をする必要はなくMP4ファイルを読み込むURL(ただし48文字以内のURLで、ブラウザのタブも3つ以上開いていると発動しないなどの条件はあります)へアクセスするだけで発動します。

インターネット上のサーバーに簡単にインストールできるようウェブサイトが用意されています。

まず
http://yls8.mtheall.com/3dsbrowserhax.php

へアクセスするとQRコードがあります。そのQRコードの中身は

http://yls8.mtheall.com/3dsbrowserhax_auto.php

のURLです。アクセスすることで旧型(3ds webkithax)と新型(browserhax fright)でそれぞれ自動的にexploitを用意してくれるようです。

ここで注意点ですがNew3DSでBrowserHaxをそのまま実行すると ヒープメモリの破損 (Heap corruption) が発生しメモリ割り当てに失敗してMP4の解析に進みません。

New3DSの場合は以下の作業を途中で行います。
1) Wi-Fiを無効化する.
2) HomeメニューからQRコードでURLを読み取り、ブラウザでアクセスしてみる
3) ブラウザを一旦終了して再度Wi-Fiを有効化する
4) ブラウザを起動すると先ほどアクセスしたURLへアクセスする

なお、libstagefrightはWii U バージョン 5.5.0Jのブラウザにも脆弱性として残っています。Wii Uでも今後何らかの動きがあるかもしれません。

ThemeHax(HomeMenuHax)

ThemeHax(HomeMenuHax)は今回の最も大きなトピックで、smea氏の言う通りゲームカードが不要でtubehaxのようにeショップからダウンロードすら不要という、本体だけでHomebrew Launcherを起動できるものです。

仕組みとしては、HOMEメニューが起動した時にSDカードのextdataフォルダにあるテーマデータを読み込んでexploitが発動します。液晶モニターのバックライトが点灯するのとほぼ同時に起動するため、まるで3DSの電源を入れたらHomebrew Launcherが普通に起動するように見えます。

ThemeHax(HomeMenuHax)が対応している3DSのバージョンはテーマを導入した9.0以降(日本版は9.1.0-20Jでテーマが導入されたので、日本リージョンの3DSは事実上9.1以降です)に限られますが、最新バージョンである10.1でも動作します。

インストール方法は簡単で、https://github.com/yellows8/3ds_homemenuhax/releases/から最新版のthemehax installer(現在はv1.2)をダウンロードして解凍し、”themehax_installer”フォルダをSDカードのルートにコピーすれば準備は完了で、themehax_installer appをHomebrew Launcherから起動し、画面の指示に従ってインストールをすれば完了です。

テーマをSDカードから読み込んでいますので、テーマを変更するとexploitは発動しなくなります。まだ電源OFF時にSDカードを取り外して3DSを起動した後にSDカードを取り付ければ『Cubic Ninja』等を使った方法でHomebrew Launcherを起動できます。

Tags: , , , , ,

  1. sirome’s avatar

    最期から二行目の所で、
    「まだ電源OFF時」になっています

  2. マリオ’s avatar

    8.0対応してないのか。残念。

  3. カービィ’s avatar

    さっさと上げろよ粕が

  4. マリオ’s avatar

    メイン機は9.9wサブは8.0。
    ま、メイン機で出来りゃいいか。

  5. shizuru123’s avatar

    tubehaxだとネット必須だったからこれはうれしい

  6. ff’s avatar

    旧3dsでやってみましたがエラーでブラウザ強制終了するのですが
    どなたか原因教えてもらえませんか?

  7. うーん’s avatar

    手持ちの3dsll(9.9.0-26j)だけかもしれないけど
    HMhax起動の場合のみblargsnesだけがフリーズします…(-_-)

  8. 173210’s avatar

    Wii Uでもlibstagefright使ってるのか。ハックしよう。

  9. shizuru123’s avatar

    てかChange Firmware version押す前に固まるんだが、これ絶対バグ(Youtubeを起動した瞬間に9.9.0用exploitを使って起動させようとしてる?)だろ

  10. Chmcl’s avatar

    旧3DS(fw9.4-J)にて下画面が
    黄色から灰色になるもののそのままフリーズしてしまう。
    何度か試したが変わらず…

    Tubehaxの時も動かなかったし、
    Smea氏はツイートで、
    「9.4ユーザはアプデをしよう」
    と言ってるから
    Ninjhax2.0側に問題があると思われる

  11. 173210’s avatar

    入れてみましたねぇ

  12. nazeni’s avatar

    TMhax起動だと3ds&3dsll(共に9.9.0-26j)では
    blargsnesのロム選択不可なんですけど
    私の個体だけなのかなァ…(-_-)

  13. shizuru123’s avatar

    僕もです。
    それどころかtubehaxも起動しない・・・

  14. 774’s avatar

    BrowserHax
    debugのとこまでいくけど赤画面から進まない

  15. tako’s avatar

    おっやっと出来ました。
    ちなみに自分の方法は
    1: ttps://smealum.github.io/ninjhax2/boot.3dsx
    から3dsxファイルをダウンロードします。

    2:3DSのSDカードのルートに↑の3dsxをコピペします。

    3:ttp://smealum.github.io/3ds/
    から3DSのバージョンにあったpayloadsをダウンロードします。

    4: (3)でダウンロードしたbinファイルをbrowserhax_hblauncher_payload.binにリネームします

    5: リネームしたbinファイルをSDカードのルートにコピペします。

    6:そしてQRコードからブラウザ開いてスライダーの右側タッチしたら出来ました。

  16. 謎18’s avatar

    その方法でもできなかったのですが・・・。
    3DSとバージョンは何ですか?
    因みに自分は旧3DSの10.1.0-27(最新)です。

  17. tako’s avatar

    自分も旧の 10.1.0-27J です
    なぜでしょう…一応ブラウザーの設定から履歴とCookieを消してセーブデータの初期化をしてからまたやってみてください。もしかしたら出来るかもしれません。

  18. 謎18’s avatar

    履歴とcookie消して試したところ、できました!
    この方法なら出来そうですね
    ありがとうございました。

  19. 謎18’s avatar

    それと自分もTheme、BrowserHaxでblargsnesでロムを選ぶとフリーズします・・・。
    なぜでしょう?

  20. nazeni’s avatar

    the-/brow-両方入っていれば非常に簡単な方法で
    blarg-がフリーズせず起動できる方法がありました。
    安易にお書きできず申し訳ないのですがyellows8さんの
    各hax英文チュートリアル(&blarg対処法)を細かく確認すれば
    今の状態からファイルを足すことなく必ず幸せになれます^^
    sdを弄らず今のhax状態を保持したまま探してみてください^-^)

  21. tako’s avatar

    それは良かったです!お役に立てて嬉しいですm(_ _)m

  22. tako’s avatar

    3DSを普通に起動してから適当なアプリを起動して、電源ボタンを押します。
    ゲームを終了しましたという文字が出たらホームボタンをおしてからすぐにLボタンを長押ししてHomeBrewを起動してblargsnesを起動してやってみてください。

  23. nazeni’s avatar

    探す楽しみを味わい幸せになれましたでしょうか
    正に上の方の仰る通りの方法でした
    開発者さん&掲載者様に感謝です

  24. tako’s avatar

    たしかに探すの楽しかったです!出来た時の嬉しさも最高ですね

  25. Chmcl’s avatar

    9.4アプデがどうのこうのありましたが、
    Spider exploitの為に維持し続けたところ、
    Yellow8氏によって、いつの間にかBrowserhaxが動くようになっていました!

Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です