PSP Hack一覧

"Half-Boiled" SAVEDATA Exploit続報…とは言わないかこんな内容

PSPの“Half-Boiled” SAVEDATA Exploitですが、日本のみならす海外の皆さん含めて色々アドバイスをいただいてありがたい限りです。

wololo氏にLan.stで擁護していただいたおかげでFAKE叩きにはあっていませんが、半熟状態を脱するにはどうしたら良いか試行錯誤したいところにもかかわらず昨日からちょっと時間の融通が効かない期間に突入しており調査のための時間がとれなくなっています。

時間がないことはないんですか、ブログの通常記事だけで時間が終わってしまいます。

進展なくてFAKEだろと叩かれてしまう前に動きたいとは思っています。

ちなみにこの記事は携帯ブラウザから書いてます。



PSP "Half-Boiled" SAVEDATA Exploit〜OFW6.20でも動作確認

GameGazフォーラムで、PSPの公式ファームウェア6.20でも動作するexploitが発見されたことを伝えていました。【GameGaz

半分だけです。こんなのでexploitとして有効に活用できるのかちょっと疑問です。


$raを0x00(Value1)00(Value2)

というように(Value1)と(Value2)しか任意の値になりません。


PSPLink_Savedata_exploit_61

PSPLink_Savedata_exploit_41

はい、すいません。
この記事は自作自演ですので詳しくはGameGazフォーラムへどうぞ。

ゲーム名は・・・秘密です。



pspjoke氏のPSP OFW6.20 exploitはレジスタを自在に操れる神懸り的exploit

Lan.stフォーラムでpspjoke氏がPSPのセーブデータを使ったexploitを発見したと報告していました。【記事

ゲーム自体は現在でもプレイステーションストアにあるらしいですが、現時点では何のゲームを利用しているかについては未公開です。どうやら何も進展しないままソニーに対策されてしまったFreePlay氏のexploit(Hello World)の失敗を糧に慎重に扱っている様子がフォーラムから見て取れます。

今回のexploitが動作するのはファームウェア6.20までの全PSP(PSP go含む)対応でユーザーモードexploitだそうです。今後eLoaderは予定されていくようですが、カーネルモードへアクセスが可能になるかもしれないHEN(Homebrew ENabler)まで進展するかどうかは全く未知数です。

ここ最近PSPをハックしたと主張するのは実際動画だけのFAKEがほとんどでしたが、今回は少し趣が異なります。動画が全くなく、実際PSPをクラッシュさせたときのPSPLinkを使ったレジスタ値でのexploit証明です。

PSPLink_Savedata_41

ゲーム名は分かりませんが、Gripshiftの時と同様にセーブデータに「A」の文字(0x41)を大量に入れてバッファーオーバーフローを導きだしているようです。Gripshiftの時の文字コードは「a」の文字(0x61)で名前に”This is spartaaaaa….”を入力していましたが、このPSPLinkの結果は例えば「This is SARTAAAAA….”」を入れたような状態です。あちこちのレジスタに41(ASCIIコードでいうと「A」)が頻出しています。

PSPLink_Savedata_E

この場合は先ほどの名前部分の「41」を「EE」に置き換えています。ここがexploitであると一目で分かるポイントで、「41」の代わりに「EE」へ置き換えたところ各レジスタの値もそれに合わせて「0xEEEEEEEEE」となったことが一目で分かります。つまりは各レジスタに任意の値を入れておくことが可能ということです。

どちらの結果を見ても分かる通り、今回のexploitは下記のレジスタの値を任意に操れることになります。
$S0〜$S7 callee-saved register
$fp frame pointer
$ra return address

PSPはこのexploitでクラッシュしていると思いますが、disasmを使ったその時のアセンブル表示がないのでこのレジスタを簡単に使えそうなのかが分かりません。仮に$raへのジャンプコールが存在していれば任意のアドレスへ飛ばすことが可能になります。そこになんらかのコードを書いてしまえば自作コードを走らせることが出来るようになります。

PSPLinkの結果はそれなりに信頼性が高いような気がしてしまいますが、当然それ自体FAKEの可能性もあります。
ただし、今回はn00b81氏という、PSP界では知名度があるフォーラムユーザーにヘルプを求めています。ある意味それが本物であるという証拠とも言えるでしょう。

Lan.stフォーラムはPSP界では知名度がのレベルが高いことで有名ですが、今回は逆にそれを上手く利用し、名前が通っているn00b81氏に検証を含めたお手伝いをしてもらっている形です。

かねてよりwololo氏が
「exploitの証拠として有名どころのユーザーに送って確認してもらえばいい」
と言っていましたが、まさにそんな展開になっています。

それにしてもPSPLinkでこんなに美しい結果が出るなんて、それを見ることが出来ただけでも幸せです。

今回のexploitはユーザーモードでしか動作しませんが、PSP goで初めてHomebrewが起動するかもしれない大きな分岐点になるかもしれません。