PSP Hack一覧

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が起動するかもしれない大きな分岐点になるかもしれません。



PSP 6.20時代のCFWとは〜Team GENが語る今後

PSPGENで、PSPのCFWのこれまでとこれからの展望に関する記事を掲載していました。【情報源:PSPGEN

長文につき翻訳のみでお伝えします。


ファームウェア6.20:内に秘めたる機能

OFW6.20には隠された機能があり、ソニーはアングラな世界からファームウェアを守ろうとしています。

今回はこのニュースを英語でお伝えしますが、英語が母国語ではないのでセンテンスや文法が間違っていても流して下さい。

ソニーがアングラなハッキングの世界に理解を示していないのは明らかですしその存在に対決姿勢を示しているのも事実です。この5年間の間見えない戦争が行われ続け、さらにここ最近は日本の巨大企業の戦略変更で勝利を得ている形です。

当初は新ファームウェアをリリースしていくことでハッカーとソニーのイタチごっこが繰り返されてきました。新ファームウェアが出るごとにexploit対策が行われ、ユーザーがアングラな世界に入れないようにしてきたのです。これが過去に多くのファームウェアがリリースされてきた理由です。

Yoshihiro_Magicien
「1.50の時代は良き時代でした」

その方法は一般的には成功したとはいえませんでした。特にパンドラバッテリーがリリースされた後はPSP-1000とPSP-2000のv1/v2でflash書き換えが容易にできるようになってしまったからです。

この素晴らしいアングラツール登場後、ソニーはPSP-2000v3でPSPの内部構造を変更し始めました。そしてPSP-3000ではバッテリーを”パンドラ化”とflash書き換えによるカスタムファームウェア化ができないマザーボードを採用してきました。

これが効果的だった最初の打撃でした。しかしDavee氏がこれを打破し、そしてそれがきっかけとなりPSP-3000で動作する5.03GEN for HENへとつながったのです(その前にリリースこそなかったもののMirium氏の5.02HENがありました)。GENチームと、特にGENyUS氏がPSP-3000オーナーへと福音をもたらし扉をひらいてくれたことは特筆に値します。ただ残念なことにその扉を開いたexploitは5.03までのファームウェアがインストールされているPSPでしか利用できません。

5.03GEN-D3

ここ最近はゲームを発売する側がアングラ界と対決姿勢を示しており、カスタムファームウェアがインストールされたPSPでゲームが起動できないように仕組んできています。カスタムファームウェアをインストールしていると購入したUMDまで起動できないとなるとますます対峙したくなるのがユーザーというもので、ハッカーたちはこぞってパッチを作成したり、非合法な話になりますがインターネット上でプロテクトを解除したバージョン(鉄拳6など)を流通させたりとしてきました。そのために購入したゲームをプレイするために違法ダウンロードに手を出さざるを得なかったりしていました。(まもすけ注:いや、それはダメだろ常識的に考えて。あほかっちゅうの。自分で吸い出してパッチしなさい。)

Yoshihiro氏がGENチームに復帰してこうした状況を嘆き、最新のゲームをわざわざ吸い出してコピーを取ったゲームにパッチを当てるなどという面倒なことをしなくても良いようにCFW5.50GEN-D3やCFW5.03GEN-CをはじめとしたカスタムファームウェアGENシリーズのアップデートに取り組みました。Yoshihiro氏がGENyUS氏の5.50GENに安心を与えてくれたことは理解しておく必要があります。この2つのカスタムファームウェアをリリースした日にはのべ26万人の方がこのサイトを訪れ、その前後も合わせるとのべ50万人の方が訪問したのです。この場を借りて御礼申し上げます。

最近、ソニーは今までとはまた別の、より慎重ながらより効果的な方法でアングラなハッカー界に対決姿勢を示してきています。今ここでは述べませんが状況を説明する時期には来ています。

6.10GEN-A

最初ソニーはおそらくファームウェアに解析が面倒なセキュリティチェックを用意したようです。その証拠に公開・非公開の事実にかかわらず既知のexploitが封じ込まれていました。驚くべきことにソニーが6.00以降のファームウェアで取ってきた手段が驚くほど想像以上に徹底的で大規模だったのです。一番驚いたのは2.00のころからあって秘密にしてきた非公開のexploitまでブロックしてきたことです。ここのところソニーはまるで”慌てて”対策してきているようには見えませんが、実は裏でかなり対策をしてきているのです。

この大規模対策話は真実ですが、それでも可能性はあります。もしexploitが発見されてHENが有効な5.03までダウングレードできたとしたら…ソニーでもブロックできない可能性もあります。この先6.20以下のファームウェアが入らない新型基板(過去の1.50のときと同じ状況)が登場した場合はまた状況が変わってしまいますが、PSP-3000とPSP-2000v3オーナーにはexploitが見つかりダウングレードができる可能性が現段階では残っています。

既にCFW 5.50GEN-DをCFW 6.XXGENにアップデートしない理由については過去に述べました(ゲーム最新情報 2009年11月28日のニュース参照)。ファームウェア6.XXでその構造は劇的に変わり、更に複雑になりました。6.XXのカスタムファームウェアを動作させるには非常に時間がかかります。もしCFW 6.20GENをリリースする時には、その構造の変化に対しどのように対応したのをユーザーの皆さんに明らかにできるでしょう。そして先のニュースで説明した通り現存のアプリケーション全て、場合によっては大半で済むかも知れませんが、ほぼ作り直しを全ての開発者の方にお願いすることになるでしょう。

ただ、6.XXGEN、それは可能なことです。もうしばらくお待ちください。


CFW 6.XXGENの開発は進んでいると判断して良いと思います。
ただ、リリースしたとしても全てのHomebrewは作り直しを余儀なくされそうです。当初は最新のゲームが起動するだけがメリットで、当然例えば6.20GENがインストールされたPSPが1台しかないユーザーにとってはファイラーをはじめとするユーティリティすら使用できないのでメリットが限定的になる可能性はあります。

しかしこれは以前1.50ベースのファームウェアから変わった時に経験した、一度は通った道です。さらには今当時のことを考えると通っておいてよかった道であるともいえます。

今後のソニーの対応如何によっては不確定要素もありますが(新基板登場など)、いつまでもChickHENに頼っているわけにもいかないですし、PSP goをハックするという目的もありますので進展を待ちたいところです。