PSPのファームウェアアップデートでいつの間にやら対策されてしまっていたMercuryの日本版である[HG]ハイドリウム日本版と、クラッシュバグがを発表しただけなのに5.50で対策されてしまったPursuit Force: Extreme Justiceですが、本当にソニーが恐れる脆弱性が存在したのか、ちょっと調べてみました。
[関連記事]
・Pursuit Force- Extreme JusticeでもPSPのexploitが見つかるか?
・ [HG]ハイドリウムにもMercury exploitは存在するのか?
完全な素人解析ですので100%あてになりません。
1:[HG]ハイドリウム
クリックで拡大
PSPLinkの説明資料によるとクラッシュしたのは0x0881B8B8で、アドレスにあるword読み込み時のようです。例外処理がBus error(data)となっています。
戻り値$raが0x08831918となっていますがこの値がどこから来たのかはmercuryのセーブデータの解析ができないので分かりません。そのあと$raへのジャンプコマンドがあるのですが、その直前にlwで$raの値を変えているので何か出来るのかもしれません。
2:Pursuit Force – Extreme Justice
クリックで拡大
クラッシュしたのは0x89DE068で、$a0にwordをストアする時のようです。例外処理がAddress storeとなっています。
気になるのはクラッシュ後すぐ$raへのジャンプコマンドが来ています。$raの0x08896B08がどこから来たのか不明です。このセーブデータを作成したlopi1994氏は単にGripshift exploit同様プレイヤー名を長い物に変更していただけです。(確か調べた時には名前の後にHack PSPなんちゃらかんちゃらと書いてありました。aの連打ではなかったような気がします)
どちらにせよ$raの0x08896B08は入れた名前とは関係なさそうです。
wololo氏が教えてくれたパターン(This is spartaaaaaでa:61が並ぶパターン)でないと、何がどうなればexploitとなりうるのかがさっぱり分かりません。
詳しい方が見れば分かるのかな?