はりをきば

そこにピカマンがいる限り 私はテイッハットウッをやめない

【5.5.3対応】WiiUでHBLを起動するボタン作った【2019年版】

¯注意
この記事はを最後に更新されていない。
更新日が1年以上前の記事はリンク切れしていたり、情報としては役に立たなくなっている可能性あり。
ˆMixed Contentについて
この記事は投稿日が古い為、記事中の画像は非SSL(http://)で貼られている。(※投稿画像以外は全てSSL)
この件に関して詳しくはこちらを参照。

…ので、ここに公開しておく。実は1ヶ月以上前に完成してた

【更新履歴】

  • [2018/09/28]
    • 5.5.3でも問題無く動作することを確認。
    • フリーズ原因の項目を一部修正。
  • [2019/03/07]
    • HBL起動率を僅かながら改善。
    • 記事中の誤字脱字を修正。
  • [2019/04/05]
    • HBL起動コード改善、カーテンを閉めていても動作するように。
    • Alt modeを以前の通常版へ差し替え。
    • 記事を加筆・訂正。
  • [2019/06/07]
    • ビルトインペイロード修正(通常モードのみ、Altは変更なし)
      • 以前のペイロードで起動されるHBLはNightly版のSDCafiineそのAutoboot版、.rpx形式のHomebrew等が起動できないバグがあった。
      • (このJsTypeHaxはあくまでCBHC/Haxchiインストール用であり、それらのインストーラは以前のペイロードでも起動できたので別に直さなくてもよかったのだが…)






\じゃじゃーん/

WiiU 5.5.x HBL (はりを改造版JsTypeHax)|gutyan.jp

https://file.gutyan.jp/wiiu/hbl


u.drg.liloadiine.ovhよりも起動(トリガー発動)するのが早いのが特長。
上記2つのサイトがタップしてから起動するまで前者が20秒以上、後者が10秒以上かかるのに対し、ワシのこいつは約5秒



使い方

HBL本体(とCBHC/Haxchiインストーラ)をそれぞれダウンロードし、FAT(16/32)のSDカードに配置する。

GitHub - dimok789/homebrew_launcher: WiiU Homebrew Launcher

https://github.com/dimok789/homebrew_launcher

【CBHC/Haxchi Installer】

HBLは必ず1.x系列の最新版を使うこと。(今現在1.4)
2.x系列はブラウザからは起動できない(CFWで使うものな)ので無視。
(CBHCを入れる人は2.xのChannel版も一緒に入手しておくとWiiUメニューにチャンネル化できるので便利)


パスはこう。

SD:/wiiu/apps/homebrew_launcher/homebrew_launcher.elf

WiiUに限った話ではなく、3DSやWiiにも言えることだがSDのパスは大文字小文字を区別しない
従って、/wiiu/APPS/Homebrew_Launcher/HoMeBrEw_lAuNcHeR.eLfみたいな滅茶苦茶なファイル/フォルダ名でもちゃんと動く。
ちなみに私は、わかりやすいよう/WiiU/Apps/Homebrew_Launcher/homebrew_launcher.elfとしている。
(ファイル名はそのまま、フォルダ名は先頭大文字に)


ファイルをセットしたSDをWiiUに挿し、ブラウザを起動。
この時、複数のタブを開いている場合は一旦全て閉じる
1つしか開いてない場合も、そのタブが使い回し(別のサイトを読み込んでる状態)だと失敗するので、閉じてスタート画面(時計表示画面)に戻す。
タブが1つのみで、且つそれがスタート画面な状態で、改めてアドレス入力でfile.gutyan.jp/wiiu/hblと入れアクセス。
(httpsの有無はお好きにどうぞ)


起動ボタンのあるページを開いたら、一旦ブックマーク。


ブックマークしたら、いざポチっと押す。
成功すれば約5秒くらいで起動する。


5.5.2+のブラウザHBLはガチャ(運ゲー)なので失敗(フリーズ)するのは当然で、数回リトライ&フリーズしたくらいで騒がないように。
まず数回試してみて、全滅するようならAlt modeにチェックを入れてもう数回トライしてみる。
それでもフリーズする場合、下記のFAQも参照。


運良く起動できたら、後はサクっとCBHCやHaxchiをインストールして終わり。
次からはCBHC/Haxchiを使ってHBLをオフライン且つ100%確実に起動できるようになる。
(CBHCの人はチャンネル化すると便利)


申し訳無いがCBHC・Haxchiのインストールや使い方、HBLのチャンネル化手順等は割愛。
(そういった事も含め後日改めて詳しいWiiUハック記事を書く予定)



多謝

このHBL起動ボタンは、下記のコードをベースに作成した。
というか8割くらいオリジナルママ

GitHub - WiiUTest/JsTypeHax

https://github.com/WiiUTest/JsTypeHax

ちょい解説

このオリジナルのコードは、以下のWebkitのバグ(CVE-2013-2857)を使用している。

Issue 240124 - chromium - An open-source project to help move the web forward. - Monorail

https://bugs.chromium.org/p/chromium/issues/detail?id=240124

2013年、Blink分岐直後のWebkitに見つかったこいつは、type="image"なinput要素に割り当てたハンドラからtype="radio"にするとメモリ破壊&任意コード実行できるという普通にアカンやつ。
んで、そこからHBLのelfを起動するペイロード(3DSでいうところのotherapp.bin的な)をメモリに書き込み&実行するというのがこのJsTypeHaxなるもの。


サイト側からは書き込んでよいアドレスを検知できないので、書き込めそうなアドレスに当たりを付けてペイロードを置くというその仕様上、
書き込んだアドレスがフリー(writable)であるという保証は無く、運悪く使用中のアドレスに置いてしまうと起動中のシステムが破壊されてしまう。
フリーズするのはそういうことである。



FAQ(Freezy Asked Questions - よくあるフリーズとその回答)

Q.「FSGetMountSource failed」と出る

A. exploitを使った起動シーケンスは運良く成功しているが、肝心のHBL本体が読み込めていない。

このエラーが出る要因としては

  • ELFファイルのパスが不一致
  • SDカードがFAT(16/32)形式じゃない
  • SDカードの接触不良、或いは故障?
  • そ も そ も S D が 挿 さ っ て な い

この起動ボタンはSDに入ってるHBLを呼ぶものなので、そもそもSDにそれが入ってないと話にならない。
SDXC(64GB以上のSD)は初期フォーマットがexFATなので、最初にFAT32でフォーマットしておく必要がある。

Q. Alt modeと通常モードの違いは?

A. ペイロード生成を私に任せるか(通常)、自分でやるか(Alt)。

HBLのelfへリダイレクトする為のペイロードを、通常モードは予め私が生成した出来合い品を使うのに対し
Altは必要な素材とパラメータのみを与え、後は訪問者のWiiUブラウザ側でその都度生成する。
メモリ空間をアタックするという都合上、自力生成するAltはメモリ状態が変動しやすいので起動率に若干難がある。
…が、その代わりAltの方が動作が若干早い。(通常モード比-1秒)

Q. 何回やってもフリーズマンが倒せない

A. Haxchiだけは最後まで取っておく

…フリーズ率が上がる行為をリストアップしたので、以下の行動は控えてポチるよう心がける。

  • 起動ボタンページを開いてから数十秒以上放置
  • 起動ボタンページを開いてる状態でブックマークリストを無意味に開く
  • Wiiリモコンを使ってボタンを押している(ゲムパ使ってね…)
  • 複数のタブを開いている(フリーズ確定)
  • タブを使いまわしている(戻る/進むで別サイトのキャッシュをもっている、フリーズ確定)
  • Alt modeでカーテンを閉めている(TVへのWebサイト表示をオフにしている)

とにかく運ゲーなので、音を上げる前に最低でも10回は試してね。


尚、海外のハック解説サイトや国内の解説ブログの中には
HBLは1.3の方がいいだの、ブラウザのCookieやセーブデータ(ブックマーク)は消去した方がいいだのと適当な事を書いてるとこがあるが
↑それらは迷信の類なので無視するように。


また、Alt modeは仕様上カーテンを開けないと失敗率が上がるので注意。
(通常モードはカーテンが閉まっていてもOK)




その他、バグっぽい動作(5秒どころかボタンを押した瞬間に確定フリーズする等)を見つけたら
コメントに書いておくと助かったりそうでもなかったり。