2010/09/02 ■ PS3をハックする「PSjailbreak」を1890円で自作する (PSgroove) Xでつぶやくこのエントリーをブックマークに追加このエントリーを含むはてなブックマーク

先月、難攻不落だったPS3がハックされた…!と話題になりました。その名も「PSjailbreak」。特殊なモジュールをPS3のUSBに刺し、電源起動直後にちょっとした操作をすることで自作アプリケーションを導入する仕組みのようです。動作の流れから見て、工場用保守モードでもあったのか?(訂正:脆弱性を利用したもののようです)なかなか興味深いところです。
で、当然そんな手順なんて一度わかってしまえばすぐにいくらでも模倣は可能…というわけで、昨日オープンソース版のPSjailbreakである「psgroove」が公開されました。動作に必要なハードウェアは1890円(税込)で通販可能、他に必要なものもほとんどない…というわけで、まあこれは試してみない手はないだろうと早速作ってみることにしました。


ただし、あらかじめお断りしておきますが、今回私が自作する「psgroove」は
This software is not intended to enable piracy, and such features have been disabled. This software is intended to allow the execution of unsigned third-party apps and games on the PS3.
とのことで、あくまでも自作ソフト(未署名アプリ)の起動を実現するもので、市販ソフトのコピーについては無効化されているものになります。それと、当然こんなことをやらかすわけですからPS3のファームウェアアップデートやオンラインサービスの変更でいつなんどきPS3本体やPSNアカウントが無効化されても文句は言えませんので、試すのはあくまでも自己責任で。

必要なハードウェアはストロベリー・リナックスさんで買えます。「AVR-USBマイコンボード AT90USB162」1セット1890円、送料400円・代引手数料300円。夕方までの注文ならば当日出荷で翌日には届きます。はやい!
あと必要であればUSBケーブル。どこかに余ったケーブルがあれば不要です。

AT90USB162ボードには数点半田付けが必要な部品があるので、これらを半田付けします。細かい部品は最初から基板についているので難しいところは全くありません。中学校の授業で経験済みなら誰でも失敗することはないレベル。
(※ハンダ付け!?無理!という場合はハンダ付けの要らない完成基板を使う手法もあります

ついでに5Vと書かれた半田パッド部分も半田付けして(ハンダを盛って)ショートしておきます。これでハードウェア側の準備は完了。ジャンパピンが2つついていますが、最初の書き込みをする際には差さなくてOKです。

次にAT90USB162ボードへファームウェアを書き込む準備。書き込みツール「FLIP(FLexible In-system Programmer)」をここからダウンロードします。Java Runtime Enviromentが既にインストールされている人は上、JREも同時にインストールする人は下のFLIPをダウンロード、インストール。よくわからなかったら問答無用で下のほう(20MBあるほう)を入れておけば問題ありません。

ここで先ほど作ったAT90USB162ボードをPCに接続します。USBドライバ選択ダイアログが出てくるので、FLIPに付属していたUSBドライバを読み込ませます。ファイルの位置は「C:\Program Files\Atmel\Flip 3.4.1\usb」。接続しただけでドライバ選択画面が出てこない場合は、デバイスマネージャを開き「!」マークのついている「AT90USB162 DFU」のようなアイテムを探し右クリック→ドライバの更新、から進めます。

無事認識したところで先ほどインストールしたFLIPを起動。起動したらメニューからDevice→Select、「AT90USB162」を選択します。

次にSettings→Communication→USBを選択。

「USB Port Connection」というウインドウが出てくるので、Openをクリックします。

このリンクを右クリック→名前をつけてリンク先を保存、として「TEENSY 1.0-psgroove.hex」をダウンロードします。File→Load HEX Fileで開くファイルの選択ダイアログからそのhexファイル(TEENSY 1.0-psgroove.hex)を選択してください。
※ここでエラーが出る場合は、フォルダ名などに日本語が含まれないところに.hexファイルを置いてください。特にユーザ名が日本語の場合、デスクトップやマイドキュメントなどに.hexを置いているとエラーになります。


Run、をクリックするとHEXファイルをAT90USB162ボードに書き込みます。ウインドウが一瞬開いて、下に「Verify PASS」が表示されたら完了ですので、AT90USB162ボードをPCから取り外します。

いよいよPS3に接続です。以下の手順で…
  • PS3の主電源をOFFにする
  • 書き込みが終わったAT90USB162ボードをPS3に接続する
  • PS3の主電源をONにする
  • 電源をONにする→直後にPS3のイジェクトボタンをタッチ(ディスクが入っていなければピピピッと音がする)
今回製作したAT90USB162ボードにはLEDが搭載されていませんのでUSBデバイス側での動作確認はできませんが、この手順でPS3を起動すると…

XMBのゲームの項に「Install Package Files」というメニューが出現します。これで成功。未署名の(Homebrewの)アプリケーションがインストールできるようになった…はず?

冒頭にも書きましたが、今回USBに書き込んだのは「市販ソフトのコピーを実現してしまう機能を避けたもの」です。こういった修正がされていないバージョンのHEXファイルや、バックアップ用のアプリなどについてはここでは触れません。…というわけで、私はひとまず「うおおお、ほんとに動いた!」というところで満足。ちなみに、PS3からUSBを抜いて再度起動するだけで上記のメニューは消えました。

というわけで、一度書き込んだAT90USB162ボードはPCから認識しなくなってしまうので、初期状態に戻す手順を挙げておきます(AT90USB162ボードに付属している紙マニュアルにも書いてありますが)。これでまた違うHEXファイルを書き込むことができるようになります。

  • AT90USB162ボードをPCにつなぐ
  • 付属のジャンパピンをRESET(写真の位置)に差す
  • もう1つの付属ジャンパピンをBOOT(写真の位置)に差す
  • RESETに差したジャンパピンを抜く
  • BOOTに差したジャンパピンを抜く

以上でもとどおり、別のファームウェアを書き込むことができるようになります。

最後に、繰り返しになりますが重要な注意と、私の立場を表明しておきます。
本操作はPS3を非正規の状態にするものです。また、PCやPS3に手製のハードウェアを接続することになりますので、最悪の場合はPCやPS3を物理的に破壊してしまう可能性もあります。そして、PS3に非正規のソフトウェアを導入することはPS3の利用規約に反しており、将来のファームウェアアップデートやプレイステーション・ネットワークの設定変更でお使いのPS3が無効化されても(起動不能やネットワーク接続不能にされても)全く文句が言えません。そして、今の段階ではそのリスクはかなり高い、ということは必ず自覚してください。
以上のことがきちんと理解でき、自己責任で行う分には私はこれは「とてもおもしろいハック」だと思います。が、このハックを市販ソフトのコピーや、コピーしたソフトウェアの起動などに使うことには反吐が出ます。「閉ざされていた世界をこじ開ける」ことは知的好奇心を満たし「おもしろい」ですが、市販ソフトウェアをコピーすることは「おもしろくない」し「くだらない」。そんなことをして不正にゲームを遊んでいる暇があったら、何か作っていたほうがよっぽど楽しい。

というわけで、難攻不落だったPS3もついに開城ですか…というお話でした。