2009年03月11日一覧

1バイトの福音〜1 bite gospel for heaven with Phantasy Star Portable(JP)

Welcome From Abroad

読者のNAKKANさんが発見したPSPのゲーム、ファンタシースターポータブル体験版でのフリーズバグはグリップシフトのようなオーバーバッファーフローとは異なるかもしれません。
One of my blog’s reader NAKKAN,who is a same person as “yyoossk”, has found a bug causing crash on PSP-3000 with PSP game – Phantasy Star Portable(DEMO).It was said that crash was caused by buffer-over-flow as a Gripshift,but I think it is different from that.

まもすけ自身もファンタシースターポータブルのUMDでも同様のバグが起こることを確認しておりますが、調査の結果長いプレイヤー名を改造データに埋め込んだことによりフリーズしたのではなく、セーブデータ内のあるアドレスに1バイトだけデータを書き込んだことにより発生することが分かりました。対象アドレスは0xfd58です。
I have a UMD “Phantasy Star Portable-JP” and made a modified savedata by myself to confirm it is real.Of course I got a same result like DEMO version. Now I tried to know a reason to crash it step by step,so that I have found only one byte of code on decrypted savedata brought me a crash! It means there is no relationship between a crash and a long player’s name causing buffer-over-flow.The Criminal address on decrypted savedata is 0xfd58.

YouTubeに動画をアップしました。
You can find the crash on YouTube.Link is the following:crick a pictuer.


YouTube

YouTubeのパーツ

セーブデータについてご説明します。
I will explain about decrypted savedata that I made.

改造セーブデータはこちらです。
At first you can get modified savedata from link as follows:
http://www.megaupload.com/?d=9VRKL21G


オリジナルのセーブデータです。
This picture is a screenshot of original savedata that contains a players name.
名前はmamosukekoooo…(まもすけ子w)で、ゲーム中に入力可能な最大限の文字数です。0xfd58には00が入っています。
The player’s name I made is “mamosukekoooo…”
I entered “O” to the limit on the game while playing as usual.The address 0xfd58 you can see a data “00”.

PhantasyStarPortable Original_Savedata


改造セーブデータです。0xfd58に6d(アルファベットで”e”)を加えました。
This picture is a screenshot of modified savedata.I typed “6d”(ASCII code “e”) at 0xfd58.
PhantasyStarPortable Modified_SaveData

これだけでゲームが動画のようにフリーズします。
これが何を意味するのかは分かりかねますが、スパルタとは異なることが分かりました。脆弱性が存在するのかどうか、あとは専門家にお任せします。
That’s All I did.You can see crash with it like shown in video.
Apparently it is different from Gripshift over-buffer-flow like “This is spartaaaa…”
I don’t know whether vulnerability exists or not on it.Hackers in the world you are the next to make Hello World and so on with Phantasy Star Portable!