2005年06月15日
1.50で自作プログラム起動!!!!!
来ました、遂に来ましたよ!!PSP ファーム1.50で自作プログラムの起動がっ!!フェイクじゃなかった!!!!!外国人ペタスゴス!!!!!!!!!
とはいえ、まだ私は確認していません。まぁ、動かし方は適当に探して頂くとして(ぉ、仕組みなんぞを書いてみようかなと。 【データ】PSPハッキング総合【解析】の神々によると、以下のプロセスらしい。
213 Name: 24 [sage] Date: 2005/06/16(木) 00:02:58 ID: SwCKdSZp Be: まず1.5ユーザーの方、自作ソフト起動おめでとうございます。 今回の自作ソフト起動法は、PNGのExploitを使ったとか色々騒がれていますが、そんな小難しい 話ではないです。 まず通常の書式のPARAM.SFOを用意します。ELF2PBPの勝手に生成するやつでも、かまいません。 それに適当なpngファイルを、PBP Unpackerなどで、結合させEBOOT.PBPを作成してください。 適当なpngが必要なのは、PBP UnpackerがPARAM.SFOの他に一つ以上ファイルを入れてください と出てくるのためです。そのときDATA.PSPは必要ないです。 それがMS1の正体です。MS2のEBOOT.PBPは名ばかりで生ELFファイルのDATA.PSPのリネームです。 それがMS2の正体です。 確かにわかればなんてことないトリックですが、何百もの方法を試してこそ見つかったのでしょうから よく見つけてくれたと、PSP-DEVチームに感謝します。 1.5のファーム領域に1.0ファーム上書きしたら1.0に戻るか試してみたいですが起動しなくなりそうで 怖いです。 222 Name: 24 [sage] Date: 2005/06/16(木) 02:43:33 ID: SwCKdSZp Be: >>217>>219 これからの私の発言は予測にすぎないですがそれでもよろしければ。 まずPSPはEBOOT.PBP内のPARAM.SFOを参照します。PSPのロゴに行くまではそれしか参照 しないのでPNGのファイルが、壊れていようとDATA.PSPが有ろうが無かろうが読み込まないので 関係有りません。起動処理は、ロゴが表示されてから行われます。 PSPロゴ起動時には、まだEBOOT.PBPは、メインメモリ内にキャッシュされません。 そのためPSPロゴ起動後に、もう一度EBOOT.PBPを参照しに行きます。 通常ではEBOOT.PBP内のDATA.PSPを読み込み、DATA.PSPが起動するのに問題がないファイル か確認します。その後DATA.PSPを実行します。 ファーム1.0ではDATA.PSPが、起動するのに問題がないか確認する部分でバグがありました。 それは本来暗号化されていなければ実行できないようはじかなければいけないのにそのまま 起動してしまう事でした。 ファーム1.5ではその部分は修正されました。しかし今回のスワップ起動法はそれと類似した別の バグを用いています。PSPロゴ起動時にメモリースティックをすり替えると、EBOOT.PBPが代わり、 いきなり最初から生ELFバイナリになります。そうするとPSPはなぜかそれをDATA.PSPの代わりに 実行しようとします。しかしこちらの普段起こりえないはずの分岐部分は、ファーム1.5では修正 されていませんでした。つまりこちらの特殊な起動時もファーム1.0と同様に暗号化されていなく ても実行できてしまうというバグが存在しました。 後に、それに気づいたソニーは1.51でセキュリティ上の修正としてその特殊な起動の分岐を使え なくしたか、特殊な起動時にも暗号化されていないファイルをはじくように設定したと思われます。 なぜソニーがこのような特殊な起動方法を容認してプログラムを設計したのか、それは私たち にはわかりません。また、暗号化されていないプログラムも実行できてしまうのもお粗末なミス だとは思います。その部分の説明に関しては申し訳ありませんが、プログラム開発者くらいしか わからないでしょう。 ほとんど予測なのであっているかわかりませんがこれで納得して頂ければ幸いです。
なるほど、なるほど。予測とは言え、ここまで言えてしまう24氏が凄過ぎる…。てか、このスレマジで神集合し過ぎ。
折角1.50なPSPも持ってますし、そのうち試してみたいと思います。メモステは2枚必要(違う容量でも可)なので、魔犬タソの援護を要請します(ぉ。