My Device Hack Blog

主にPS Vita,3DSを中心としたハックに関する記事をあげていきます。本人のやる気次第で記事の更新頻度が決まりますのでご理解お願いします。

arm9loaderhaxからsighaxへの乗り換え

3dsのBootROMハックと言えば今までは『arm9loaderhax』が主流でしたが、
2つ目のBootROMハックである『sighax』が登場しました。

何が違うんだよとよく言われるので簡潔に説明します。(記憶が曖昧なので多少違うかも)

arm9loaderhax

システムファイルなどを復号化する際に使う鍵の確認を忘れてしまいます。
これにより、鍵が格納されたセクターが破壊され、その結果鍵が不正なものになっても、それを用いて復号化を試み、実行してしまいます。

arm9loaderhaxはこの脆弱性をつくexploitです。

結果
ARM9での, arm9loader起動直後の任意のコード実行


sighax
これは3dsRSA方式デジタル署名で独自に署名ができてしまうという脆弱性を利用したハックで、BootROMハックにあたります。

これは任天堂の署名のパースの実装に問題があったため可能になりました。

結果
独自著名した『.firmファイル』からの起動が可能となりました。


注意
Luma3DSにPinコードが設定されてる場合、解除するか、aeskeydb.binを手に入れてから手順を踏んでください。


肝心の乗り換えですが以下のサイトから最新のファイル一式をダウンロードして下さい。

Luma3DS
https://github.com/AuroraWright/Luma3DS/releases

SafeB9SInstaller
https://github.com/d0k3/SafeB9SInstaller/releases

boot9strap
https://github.com/SciresM/boot9strap/releases/

GodMode9
https://github.com/d0k3/GodMode9/releases/

secret_sector.bin(New 3dsの方のみ必要)
http://ux.getuploader.com/Sharun_3ds_hax/



以上、4つのファイルがダウンロードしてあればokです。(New 3dsの方は5つ)


準備

1.(3DSの電源が入っていたら)電源を切る。

2.SDカードを抜き、PCに差し込む。

3.boot.firmをLuma3DS.zipからSDカードのルートにコピーする。

4.boot9strapというフォルダーをルートに作る。

5.GodMode9.firmをGodMode9.zipから/luma/payloads/にコピーする。

6./luma/payloads/からすべての.binを削除する。(sighaxとは非互換なため。)

7.SafeB9SInstaller.binをSafeB9SInstaller.zipから/luma/payloads/にコピーする。

8./luma/payloads/に入っているSafeB9SInstaller.binをstart_SafeB9SInstaller.binに名前を変更する。

9.boot9strap.firmとboot9strap.firm.shaをboot9strap.zipから/boot9strap/にコピーする。

10.(New 3DSユーザーの人だけ)secret_sector.binを/boot9strap/にコピーする。

11.SDカードを抜き、3DSに入れる。


boot9strap導入

1.Startボタンを押しながら起動し、Luma3DSのチェインローダーを起動する。

2.SafeB9SInstallerを(A)ボタンを押して起動する。

3.すべてのチェックが終わるまで待つ。

4.表示されたキーを左から順番に押す。

5.終了したら自動的に再起動する。

注:再起動したあと起動しなかった場合(起動しようとしてもしない場合)、boot.firmを正しい場所にコピーしたか確認してください。

Luma3DSの設定

この設定は再起動後、表示された人だけが行ってください。

1.“Show NAND or user string in System Settings”を選択する。

2.スタートボタンで再起動する。



3DSの最終セッティング

1.スタートボタンを押しながら起動し、GodMode9を選択する。

2.[0:] SDCARDからluma -> payloadと進む。
start_SafeB9SInstaller.binを削除する。(Xボタンを押し、Aボタンで確認)

3.Bボタンで[0:]SDCARDまで戻る。

4.boot.firmを選択し、Yボタンでコピーする。

5.メインメニューまでBボタンで戻る。

6.[1:] SYSNAND CTRNANDに進む。

7.Yボタンを押す。

8.“Copy Path(s)”を選択する。
Aを押し、”SysNAND (lv1) writing”の書き込みを許可して、表示されたボタンを押す。

9.arm9loaderhax.binをXボタンで削除する。

10.Aで確認する。

11.Bボタンを押し、メインメニューに戻る。

12.R+Bを同時に押し、その後SDカードを抜く。

13.スタートボタンを押し、再起動する。

14.“Show NAND or user string in System Settings”を選択する。

15.SDカードを挿入する。

16.スタートボタンを押し、再起動する。



補足
今後、arm9loaderhax.bin, files9フォルダーは使われなくなるので、削除しても大丈夫です。
(D9でfiles9を使う人は消さない)

Start+Select+Xを起動時に押すことで

Arm9 Bootrom (boot9.bin)
Arm11 Bootrom (boot11.bin)
コンソールのOTP (otp.bin)
がダンプできます。


ご不明な点、表記ミスなどがございましたら御指摘などをお願いします。