PSP Hack一覧

[HG]ハイドリウム(Mercury日本版)とPursuit Force- Extreme Justice クラッシュの中身は?

PSPのファームウェアアップデートでいつの間にやら対策されてしまっていたMercuryの日本版である[HG]ハイドリウム日本版と、クラッシュバグがを発表しただけなのに5.50で対策されてしまったPursuit Force: Extreme Justiceですが、本当にソニーが恐れる脆弱性が存在したのか、ちょっと調べてみました。
[関連記事]
Pursuit Force- Extreme JusticeでもPSPのexploitが見つかるか?
[HG]ハイドリウムにもMercury exploitは存在するのか?

完全な素人解析ですので100%あてになりません。
1:[HG]ハイドリウム

Hg

Hg_PSPLINK
クリックで拡大

PSPLinkの説明資料によるとクラッシュしたのは0x0881B8B8で、アドレスにあるword読み込み時のようです。例外処理がBus error(data)となっています。
戻り値$raが0x08831918となっていますがこの値がどこから来たのかはmercuryのセーブデータの解析ができないので分かりません。そのあと$raへのジャンプコマンドがあるのですが、その直前にlwで$raの値を変えているので何か出来るのかもしれません。

2:Pursuit Force – Extreme Justice

Pursuit Force- Extreme Justice(US)

Pursuit Force Extreme Justice_PSPLink
クリックで拡大

クラッシュしたのは0x89DE068で、$a0にwordをストアする時のようです。例外処理がAddress storeとなっています。
気になるのはクラッシュ後すぐ$raへのジャンプコマンドが来ています。$raの0x08896B08がどこから来たのか不明です。このセーブデータを作成したlopi1994氏は単にGripshift exploit同様プレイヤー名を長い物に変更していただけです。(確か調べた時には名前の後にHack PSPなんちゃらかんちゃらと書いてありました。aの連打ではなかったような気がします)
どちらにせよ$raの0x08896B08は入れた名前とは関係なさそうです。

wololo氏が教えてくれたパターン(This is spartaaaaaでa:61が並ぶパターン)でないと、何がどうなればexploitとなりうるのかがさっぱり分かりません。
詳しい方が見れば分かるのかな?



MOHH exploitからeLoader への第一歩〜Half Byte Loader Alpha 1 .0リリース

m0skit0氏がkgsws氏のMedal of Honor Heroes exploitを利用したeLoaderを開発することが告知されてしばらく経ちますが、AdvancedPSPでその第一歩となるHalf Byte Loader Alpha 1.0をリリースしていました。開発者向けのソースコードリリースのため、一般ユーザーにとって今回のリリースが即Homebrewという訳ではありません。【情報源:AdvancedPSP


Half Byte Loader Alpha 1.0

This is a userspace ELF loader for the Medal of Honor Heroes exploit by kgsws.
今回リリースするのはkgsws氏のメダルオブオナーヒーローズexploit用でユーザー領域を使ったELFローダーです。

This is a primitive alpha release that includes restricted source code (no syscall estimation code) although fully compilable. It’s by no means directed to normal users, and only developers interested in helping in the project or using some parts for their own projects or learning are advised to download it. I repeat, this is no use for normal plain users as it doesn’t execute your homebrews.
初期段階のアルファ版として、開発者の方向けに完全にコンパイルすることが可能なソースコード(syscall estimationコードはありません)でのリリースとなります。一般ユーザーの方向けではありません。今回のプロジェクトをお手伝いいただける方やご自身のプロジェクトに利用したい方、研究目的といった開発者のみを対象にしていますので興味がおありの方はダウンロードしてみてください。繰り返しますが一般ユーザー向けではありませんのでそのままHomebrewを実行したりはできません。

Please read the README file included and if you have suggestions or questions I’ll be pleased resolving them.
アーカイブにあるREADMEをご覧になってください。ご提案事項やご質問がある場合には喜んでご協力いたします。

Hope you find it useful and big thanks to people that open sources
オープンソースですので皆様にとっても非常にありがたいでしょうし、有益であると感じていただけるものと思います。


その、読んでくれと書かれているREADMEには以下のことが書かれていました。


HALF BYTE LOADER ALPHA 1.0 (ONLY FOR TESTING)
HALF BYTE LOADER ALPHA 1.0 (テスト専用)

THIS IS RESTRICTED SOURCE. SYSCALL ESTIMATION SOURCE CODE NOT INCLUDED!!
開発者向けのソースとなります。syscallの評価ソースコードは含まれていません!!
ONLY ABLE TO RUN VERY SIMPLE HOMEBREWS.
簡単なHomebrewであれば起動させることが出来ます。

USING:
使い方:

– Place “test” file resulting from compilation in “bin” MoHH exploit folder, replacing existing one.
– MOHH exploitの”bin”フォルダにある、コンパイルした”test”ファイルを既存の同名ファイルと置き換えます。
– Place “eboot.elf” from homebrew and “libs” folder on MS root.
– Homebrewの”eboot.elf”と”libs”フォルダをメモリースティックのルートに置きます。
– Launch Medal of Honor Heroes exploit and execute “test” binary.
– メダルオブオナーヒーローズのexploitを起動し、”test”バイナリを実行します。
– This should load the ELF and execute it.
– これでELFファイルを読み込み実行します。
– If you test in CFW, please run psplink as game plugin to catch detailed exceptions and debugging info. We would be glad you inform us of any issues.
– CFW環境でテストする場合はgameのプラグインとしてpsplink.prxを起動させ、例外が発生した場合にはその詳細の情報とデバッグ用情報を取得してください。

KNOWN ISSUES:
既知の問題:

– Doesnt run PRX, although they seem to load and relocate properly
– 適切に読み込んでいるように見えますがPRXファイルがうまく起動しません。
– Syscall estimation still not very reliable
– Syscall estimationにあまり信頼性がありません。

NOTES:
特記事項:
– Make sure you have a backup of “syscall.o” before doing a “make clean” xD
– “make clean”を実行する前に”syscall.o”のバックアップを取るようにしてください。
– We are fully aware that code is neither clean nor optimized :)
– コードが整理されていないし最適化もされていません。

CONTACT:
連絡先
m0skit0, ab5000, n00b81

On forums: http://advancedpsp.tk


既にOFW6.00で対策されて開発が頓挫することを心配していたので少し安心しました。
実際にファイルをダウンロードしましたが、やはりソースコードのみとなっており、起動可能なEBOOTとしては配布されていませんでした。
まもすけにはコンパイルする環境がありませんので(一時期cygwinをインストールしていたけれどPCの調子が悪くなってOS再インストールした状態のまま)試すことができません。うまくコンパイルできてHomebrew起動した方は是非教えてください。

m0skit0氏もコメントしていますが、PSPのeLoaderとしてオープンソース化したことに非常に意味があります。今後このソースをもとに様々な開発がなされる可能性があり、非常に楽しみになってきました。Wiiでいうところのwaninkoko氏のUSB/SDローダーのようにソース公開をトリガーに様々なローダーが開発されたことと同じ状態になっていくかもしれません。
ソニーに対策されてしまっていることは残念ですが、OFW5.55までのPSPであればexploitは起動しますので試してみたい方はUS版Medal of Honor Heroesを購入するのも良いかもしれません。日本版では起動しませんよ。


Medal of Honor Heroes – メダル オブ オナー ヒーローズ (海外北米版) 3,800



BMPファイルでPSPがフリーズするというPSP goのexploitは本物か?

昨日のニュースでもお伝えしましたが、PlaystationLandiaで、Andrea1234567890氏がPSP go含むFWが6.10と6.00のPSPで動作するというexploitを発見したことを伝えていました。Hello World表示までとのことで、更にexploitはBMPファイルのようですが…【情報源:PlaystationLandia

[Google翻訳+まもすけ翻訳+勝手に英文修正]


[EXPLOIT] discovered new exploit PspGO until fw 6.10
[EXPLOIT]PSP goで動作する新たなexploit発見

With pride we announce that our user Andrea1234567890 has discovered a new exploit for the PSP go and all psp that have fw 6.10.
我々の仲間であるAndrea1234567890氏がファームウェア6.10のPSP goでも動作するexploitを発見したようです。皆さんに今回こうしてお知らせできることを誇りに思います。

This exploit is just a Hello World, but in the future that could open new doors for any hen.
このexploitではHello Worldを表示するだけですが、将来的にはHENへと発展できる可能性を秘めています。

We provide information on this exploit:
このexploitについての詳細は以下です。
Info:
exploitについての情報:
* Up to 10.2 kb you can create the h. Bin after crashing.
* クラッシュ後に10.2kバイトまでのh.binファイルを読み込みます。
* This is an exploit that starts the hello world in few seconds.
* exploitは発動数秒後にHello Worldを表示します。
* This only works on 6.00 and 6.10 on all psp (in 1000 and 2000 is more difficult to start, after many attempts)
* ファームウェアが6.00と6.10のPSP全機種で動作します(PSP-1000と2000では起動しにくいようです)。
To Read More we released two videos showing there ‘s exploits.
さらに情報がほしい方はexploitが動作している動画をご覧ください。


下手くそな(または肝心なところを故意に見せないよう隠匿するために下手くそっぽく撮影したか?)動画のリンクは割愛します。

まもすけも6.10のPSP goで試しました。確かにフリーズはします。フリーズ後ブルートゥースインジケータなどが一斉に点灯したと同時に電源が落ちるのも確認しました。
ただし、何をやってもルートに置いたらh.binを読みにいきません。したがって動画にあるようなHello Worldなどというものは全く表示しませんでした。
何かコツがあるのかと思い、以下のことは試しました。
・exploit並びにh.binをPSP go内蔵メモリーとメモリースティックに置いてみる。
・言語表示を英語やスペイン語に変えてみる。
・文字セットをUSなど日本語ではないものに変えてみる。
何をしても、フリーズして電源こそ落ちるのものの全くh.binを読み込むそぶりもみせません。
exploitらしいBMPファイルをバイナリエディタで覗いてみましたが、exploitらしいコードっぽいものも見当たりません。

BMPファイルはバイナリで書き換えると画像の中のドットの色が変わります。ある意味変えたところは画像で一目瞭然として分かる状態になります。ファイルとして変えてはいけない(BMPファイルが壊れてしまうような)部分以外であればコードを埋め込むことは可能でしょう。まもすけもBMPファイルを1バイトづつ変えてはどういう動作をするのか確認したりしてみたことがありましたが、どこを変えても画像内のドット色が変わるかファイルが破損するかのどちらかでした。

以前PSPの公式6.10ファームウェアにBMPファイルでクラッシュするバグが発見された(ゲーム最新情報 2009年10月16日のニュース参照)際にwololo氏はBMPファイルでのフリーズについて『BMPはアルファチャンネルがないためexploitにはなり得ない』(ゲーム最新情報 2009年10月19日のニュース参照)と解説していました。exploitに詳しいwololo氏の言葉には重みがあります。なぜかというのを解説するには画像フォーマットの仕組みを知らないとできないのでやりませんが、フリーズこそするものの任意のコードが実行できないのであればexploitへの発展は見込めないということになってしまいます。

少なくとも今回同梱されていたh.binファイルは全く意味をなしていませんでした。やり方が間違っているのかもしれませんが、コメントでフリーズ報告は頂いているものの、Hello World表示に成功したという報告はありません。HENに発展などと大風呂敷は聞かせていだだきましたしソニーも6.20で対策をしてきたようですが、今後の発展については疑問符です。