j416 さんが書きました:動画撮ってみました
これでどのゲームかわからないはず・・・
見事に分からないですね
YouTubeに書いてありましたがリリースしてしまうのでしょうか。
PSN版でも動作するとは思いますが、いまだかつてPSP goの最新FWでのHello Worldは実例がないので(FreePlay氏のは先に塞がれたから)是非世界中を震撼させてください。
TOM さんが書きました:質問何ですが、どのようにしてExploitを発見しましたか?
自分はこの一ヶ月は暇なので....暇つぶしにと...
手持ちのゲームのセーブデータをとにかく改造してみることです。
始める前からこのゲームなら行けそうだという感触があるわけではありません。
必要なものは以下です。
SaveGame Deemer:復号化(暗号化を解除)したセーブデータも作ってくれるプラグイン
ただし、ゲーム自体がMSにデータを保存するタイミングでしか作ってくれないので注意が必要
SED:セーブデータを暗号化/復号化するためのHomebrew
PSP発売初期のゲームはSEDのみで動作するが中期以降のゲームにはGamekeyが必要
PSPLink:クラッシュ時のレジスタ調査に必要
HEXエディタ:暗号化されていないセーブデータを16進数のデータとして編集するために必要
発見するだけならこれだけで行けます
セーブデータの復号化/暗号化は、らぼこでもかまいません。
ただしらぼこはそのままではカーネルが異なるので起動しませんし、環境を選びますのでお勧めしません。
ゲームがデータを読み込むときにバッファーオーバーフローを起こさせてやるのがその方法です
ゲームプレイ時に「自分の名前を入力」できるゲームなら、その名前の後になにかデータを入れてやるのが一番簡単で分かりやすいのでしょう。
それ以外の場所でもゲームが読み込むデータを利用すればバッファーオーバーフローは起きると思いますが、変なところのデータを弄ると破損データになりますし、カットアンドトライの繰り返しが増えますので名前の後にしておく方が無難です
「自分の名前を入力」した後に保存した、復号化されたセーブデータをHEXエディタで開いて、入力した名前がどこにあるのかを探します。
HEXエディタはだいたい検索機能が付いているのでそれを利用すれば良いでしょう。
例えば"mamosuke"と入れたら、検索でその"mamosuke"をHEXエディタに探してもらいます。
データ内に複数存在することが往々にしてありますが、まあ経験と勘でこれだな、となんとなく分かるようになります。
その名前の後に適当にデータを入れて行きます。
適当とは言うものの、なるべく同じ16進数の数字を入れてください。
私の場合はa(コードは41)やA(コードは61)を連続して入れてます。
どのくらい入れるかは適当です。
フリーズさせるだけなら16バイトくらい入れればいいがexploitにするためにはその倍いれないといけないこともあります。
参考:
PSP "Half-Boiled" SAVEDATA Exploit〜OFW6.20でも動作確認名前の後にデータを入れた結果、ゲームでそのセーブデータが読み込まれた際にフリーズすれば、まずは第一段階突破です。
ここでフリーズしないものはexploitになりません。
同じ16進数を入れる理由は、あとでPSPLinkの結果を見たときに判断しやすくするためです。
j416さんの場合は"99"を入れています。
その場合は$raに"99999999"が現れたらビンゴです。
$ra以外のレジスタに"99999999"が現れることもあります。場合によってはexploitにできることもないとは言えませんが、そこまで説明すると大変なので、まずは$raに自分が名前の後にいれた数値が連続して入るようなゲームを探しましょう。
もし見つけたらフォーラムにスクリーンショットを掲載してトピックを立ててみてください。みんながきっとアドバイスしてくれると思います。