PS Vitaでサービスモードを利用するためのpsp2sdboot SKGleba氏が開発中

GitHubで、SKGleba氏がPS Vitaが持っている「SDブートモード」で使用するハードウェアの回路図や起動に使うペイロード、スクリプトなどをまとめたプロジェクトpsp2sdbootをリリースしていました。

pch2000 vita


今はまだReadmeを書き始めたばかりでリポジトリの完成にはまだ時間がかかるそうです。

なんぞこれ、というところですが、どうもSKGleba氏が秘密裏に取り組んでいたプロジェクトで、VitaでPSPのパンドラバッテリーのようなサービスモード利用の扉が開いた、と表現したらいいのでしょうか。そんな内容です。
SKGleba氏がGitHubリポジトリを公開し、Mathieulh氏がX(旧ツイッター)で広めたことから表に出てきました。サービスモード起動にはハードウェアのJIGが必要となっています。

まだ開発段階で完成版発表というところには届いていないようですが、非常に興味深い内容なのでご紹介します。

PS Vitaのシステムコントローラー(sysconやernie)にはRPC(Remote Procedure Call)サーバーというものがあります。RPCサーバーは特定のハードウェア回路上で実行されており、ネットワークを通じてプログラムの処理を呼び出し、実行させるという役割を担っています。

RPCサーバーではUART(Universal Asynchronous Receiver Transmitter)という非同期シリアル通信を介して簡単な診断チェックやヒューズの読み出し、キャリブレーション、秘密鍵によるハンドシェイクによる認証が必要なNVS(Non-Volatile Storage:電源を供給しなくても記憶を保持する不揮発性ストレージ)などのコマンドをリッスンしています。

認証済のJIGインターフェイスクライアントはブートROM内部にある代替ブートモードを起動することができます。デバイスが通常起動しないときなどに利用します。このモードは「sdboot」(SDブートモード)と呼ばれ、署名済のsecond_loader.enpがゲームカードスロット内の認証されていないMMC/SDストレージから読み出され、コンソール毎に持っている代替キーセットを利用して復号化されます。

このsecond_loader.enp読み込みに脆弱性があり、ブートROMで例外が発生するとsdbootプロセスで読み込んだデータにジャンプして任意のコードが実行できてしまいます。これを利用したものがpsp2sdbootで、結果ゲームカードのMMC/SDカードストレージから任意のブートROMコードが実行できてしまいます。Vitaを代替ブートモードで起動、データダンプやアンブリック(起動しなくなったデバイスを回復すること)などを行えるペイロードを実行できます。

リポジトリにはプリント基板を作成するためのgbrファイルをはじめ、PCツールやスクリプトファイルが含まれています。何が必要で何すればいいのかなどはまだ記載がないので具体的な使い方まではわかりませんが、少なくとも調べた限りではエンドユーザーがダウンロードしただけで簡単に誰でも使えるものにはなっていません。現段階では開発者向け、というところでしょうか。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする