セーブデータでクラッシュ

フォーラムルール
フォーラムをご利用するにあたってのルールは以下に記載してあります。
初めてご利用になる方へ:最初にお読みください

セーブデータでクラッシュ

未読記事by Tenor » 2010年11月26日(金) 13:58

ss1.jpg


このテのcrashはこのフォーラムにもいくつも見つかっているようですし何番煎じだよという気がしないでもないですが
まあこのまま隠し持ってても何の意味もないだろう、と思ったので報告です。

読み込み時にクラッシュするセーブデータです。
とはいっても探して見つけたわけではなくメモステの調子が悪かったのか偶然にできたセーブデータです。
気になってPSPLinkで確かめてみるとBus error (instr)というのを起こしていました。
ここでexproitと成りうるか確かめたいところなのですが、困ったことにこのゲーム、名前入力やお金といった操作できそうな数値というものが無いのです。
詳しく突き止めたいものですが、技術も時間もないのでここで訊いてみようと思った次第です。もしかするとダブりかも知れませんし。

...どうでしょうか。
Tenor
 
記事: 4
登録日時: 2010年1月11日(月) 12:06

セーブデータでクラッシュ

スポンサードリンク

スポンサードリンク
 

Re: セーブデータでクラッシュ

未読記事by minomushi » 2010年11月26日(金) 17:04

まず、セーブデータになんと打ち込みましたか?
aaaと、打ち込んだのですか?
そこが、分からないと分かりません。

追記。
探して見つけた物では無いのですか。
名前を使わないゲームは、セーブデータを読み込む時に、
読み込んでそうな所を、探して行くしか無いです。
exploitに、なる可能性は十分にあります。

とりあえず、セーブデータを改造してみて下さい。
minomushi
 
記事: 97
登録日時: 2010年9月12日(日) 13:27
お住まい: 日本だと、思うんだが・・・・・・・・違うのか?

Re: セーブデータでクラッシュ

未読記事by mamosuke » 2010年11月26日(金) 21:28

EPCが0x00000000ですか...

現状では偶然破損セーブデータにならずに済んだクラッシュっぽいです。
普通に改造したら何もおこらないかもしれませんし、今レジスタに入っているアドレスは正規動作で入っているだけのような感じです。

このデータのまま何かをするのは厳しいと思うので、このゲームで探すならばまずきちんと動作するデータを作ってみてください。

最初に正規のデータとこのデータを比べてみれば、クラッシュした理由が分かると思います。
mamosuke
管理人
 
記事: 270
登録日時: 2009年12月08日(火) 01:11

Re: セーブデータでクラッシュ

未読記事by Tenor » 2010年11月27日(土) 23:05

お二人とも返信ありがとうございます。

今まで例外画面の何が何を表しているのか知らなかった自分なので、EPCとは何かと気になって調べてみました。
MIPSプロセッサが例外発生時に残すレジスタのうちその際のプログラムカウンタを表す、
プログラムカウンタというのは次実行すべき命令のアドレス、ということでしょうか。
BadVAddrとの違いがよくわからない時点でもうダメです これがゼロってどういうことやら

セーブデータの話ですが、
このゲームは複数セーブ可なのでいくつかセーブしたのですが、そのうちのいくつかがクラッシュデータとなりました。
クラッシュの方法もまちまちで、読み込んだ瞬間にクラッシュするもの(SSはこのデータです)、読み込み後のロード画面でクラッシュするもの、ゲーム画面になるがところどころ文字化けしておりしばらくするとクラッシュするもの、などもあります。
正常動作するものもあります。破損データになったものはありませんでした。

とりあえず正常動作するものを復号していろいろやってみようと思います。
Tenor
 
記事: 4
登録日時: 2010年1月11日(月) 12:06

Re: セーブデータでクラッシュ

未読記事by neur0n » 2010年11月28日(日) 13:22

クラッシュした時に「step」(もしくは「s」)と打ち込んでみてくれませんか?
        \     テーレッテー    /
          \  ∧_∧   /
            |∩( ・ω・)∩|<・・・
          / 丶    | / \     
        /     ( ⌒つ´)    \
neur0n
 
記事: 88
登録日時: 2010年6月09日(水) 13:48
お住まい: 関東甲信越

Re: セーブデータでクラッシュ

未読記事by Tenor » 2010年11月28日(日) 15:05

コード: 全て選択
host0:/> Exception - Bus error (data)
Thread ID - 0x04BE750D
Th Name   - user_main
Module ID - 0x03BEC66D
Mod Name  - PSPLINK
EPC       - 0x8820A4CC
Cause     - 0x1000001C
BadVAddr  - 0xFED9D88C
Status    - 0x60088602
zr:0x00000000 at:0x88020000 v0:0x00000003 v1:0x00000002
a0:0x882136C0 a1:0x00000000 a2:0x60088600 a3:0xBC400000
t0:0x00000006 t1:0x882FF800 t2:0x00000000 t3:0x40000000
t4:0x881DEAB8 t5:0x8825F3F8 t6:0x881FCB80 t7:0x000000E0
s0:0x882136C0 s1:0x09FFE3A4 s2:0x09FFE7D0 s3:0x00000021
s4:0x00000000 s5:0x08800000 s6:0xDEADBEEF s7:0xDEADBEEF
t8:0x00000102 t9:0x00000000 k0:0x09FFE800 k1:0x00000000
gp:0x0892F320 sp:0x882FF7C0 fp:0x09FFE790 ra:0x882071BC
0x8820A4CC: 0x8E860000 '....' - lw         $a2, 0($s4)


ありゃ、Bus error (data)。

ちなみに他のデータも試してみましたがどれもBus error (instr)で落ちてStepでBus error (data)、
細かいレジスタの値は違いますがどれも$raは0x0884F898みたいです。
Tenor
 
記事: 4
登録日時: 2010年1月11日(月) 12:06

Re: セーブデータでクラッシュ

未読記事by neur0n » 2010年11月29日(月) 00:10

多分ですけれど、0x0884F890 で

jr $? ($? = 0 が格納されたレジスタ)

みたいな命令があるんじゃないかなーと。
$v0 , $t1 , $t2 辺りかな・・・。
        \     テーレッテー    /
          \  ∧_∧   /
            |∩( ・ω・)∩|<・・・
          / 丶    | / \     
        /     ( ⌒つ´)    \
neur0n
 
記事: 88
登録日時: 2010年6月09日(水) 13:48
お住まい: 関東甲信越

Re: セーブデータでクラッシュ

未読記事by Tenor » 2010年11月29日(月) 21:11

一連の流れです。
コード: 全て選択
host0:/> Exception - Bus error (instr)
Thread ID - 0x0485F51F
Th Name   - user_main
EPC       - 0x00000000
Cause     - 0x10000018
BadVAddr  - 0xFED9D88C
Status    - 0x60088613
zr:0x00000000 at:0xDEADBEEF v0:0x00000000 v1:0x00000220
a0:0x00000088 a1:0x089F5E1C a2:0x089F0000 a3:0x089F0000
t0:0xDEADBEEF t1:0x00000000 t2:0x00000000 t3:0x00000003
t4:0x088E87E8 t5:0xDEADBEEF t6:0xDEADBEEF t7:0xDEADBEEF
s0:0x089F5E1C s1:0x09FFE3A4 s2:0x09FFE7D0 s3:0x00000021
s4:0x00000001 s5:0x08800000 s6:0xDEADBEEF s7:0xDEADBEEF
t8:0xDEADBEEF t9:0xDEADBEEF k0:0x09FFE800 k1:0x00000000
gp:0x0892F320 sp:0x09FFE380 fp:0x09FFE790 ra:0x0884F898

host0:/> step
host0:/> Exception - Bus error (data)
Thread ID - 0x0485F51F
Th Name   - user_main
Module ID - 0x03BEC66B
Mod Name  - PSPLINK
EPC       - 0x8820A4CC
Cause     - 0x1000001C
BadVAddr  - 0xFED9D88C
Status    - 0x60088602
zr:0x00000000 at:0xBFC00000 v0:0x00000003 v1:0x00000002
a0:0x882136C0 a1:0x00000000 a2:0x60088600 a3:0xBC400000
t0:0x00003C2E t1:0x882FF800 t2:0x00000000 t3:0x40000000
t4:0x88268F70 t5:0x88242FF8 t6:0x8809A580 t7:0x001CECC5
s0:0x882136C0 s1:0x09FFE3A4 s2:0x09FFE7D0 s3:0x00000021
s4:0x00000000 s5:0x08800000 s6:0xDEADBEEF s7:0xDEADBEEF
t8:0x00000102 t9:0x00000000 k0:0x09FFE800 k1:0x00000000
gp:0x0892F320 sp:0x882FF7C0 fp:0x09FFE790 ra:0x882071BC
0x8820A4CC: 0x8E860000 '....' - lw         $a2, 0($s4)

host0:/> disasm 0x0884F870 40
0x0884F870: 0x90440000 '..D.' - lbu        $a0, 0($v0)
0x0884F874: 0x24420001 '..B$' - addiu      $v0, $v0, 1
0x0884F878: 0xAE020488 '....' - sw         $v0, 1160($s0)
0x0884F87C: 0x3C020892 '...<' - lui        $v0, 0x892
0x0884F880: 0x00041880 '....' - sll        $v1, $a0, 2
0x0884F884: 0x244241D8 '.AB$' - addiu      $v0, $v0, 16856
0x0884F888: 0x00431021 '!.C.' - addu       $v0, $v0, $v1
0x0884F88C: 0x8C420000 '..B.' - lw         $v0, 0($v0)
0x0884F890: 0x0040F809 '..@.' - jalr       $v0
0x0884F894: 0x02002821 '!(..' - move       $a1, $s0
0x0884F898: 0xA60204A2 '....' - sh         $v0, 1186($s0)
0x0884F89C: 0x7C021E20 ' ..|' - seh        $v1, $v0
0x0884F8A0: 0x2402FFFE '...$' - li         $v0, -2
0x0884F8A4: 0x5062FFE2 '..bP' - beql       $v1, $v0, 0x0884F830
0x0884F8A8: 0x860404A2 '....' - lh         $a0, 1186($s0)
0x0884F8AC: 0x0E216D7D '}m!.' - jal        0x0885B5F4
0x0884F8B0: 0x00000000 '....' - nop       
0x0884F8B4: 0x8FBF000C '....' - lw         $ra, 12($sp)
0x0884F8B8: 0x8FB00008 '....' - lw         $s0, 8($sp)
0x0884F8BC: 0x03E00008 '....' - jr         $ra
0x0884F8C0: 0x27BD0010 '...'' - addiu      $sp, $sp, 16
0x0884F8C4: 0x27BDFFF0 '...'' - addiu      $sp, $sp, -16
0x0884F8C8: 0xAFBF000C '....' - sw         $ra, 12($sp)
0x0884F8CC: 0x3C03089F '...<' - lui        $v1, 0x89F
0x0884F8D0: 0x8C6362D8 '.bc.' - lw         $v1, 25304($v1)
0x0884F8D4: 0x30630010 '..c0' - andi       $v1, $v1, 0x10
0x0884F8D8: 0x50600004 '..`P' - beqzl      $v1, 0x0884F8EC
0x0884F8DC: 0x8FBF000C '....' - lw         $ra, 12($sp)
0x0884F8E0: 0x0E216D9C '.m!.' - jal        0x0885B670
0x0884F8E4: 0x00000000 '....' - nop       
0x0884F8E8: 0x8FBF000C '....' - lw         $ra, 12($sp)
0x0884F8EC: 0x03E00008 '....' - jr         $ra
0x0884F8F0: 0x27BD0010 '...'' - addiu      $sp, $sp, 16
0x0884F8F4: 0x27BDFFF0 '...'' - addiu      $sp, $sp, -16
0x0884F8F8: 0xAFBF000C '....' - sw         $ra, 12($sp)
0x0884F8FC: 0x3C03089F '...<' - lui        $v1, 0x89F
0x0884F900: 0x8C6362D8 '.bc.' - lw         $v1, 25304($v1)
0x0884F904: 0x30630010 '..c0' - andi       $v1, $v1, 0x10
0x0884F908: 0x50600004 '..`P' - beqzl      $v1, 0x0884F91C
0x0884F90C: 0x8FBF000C '....' - lw         $ra, 12($sp)
host0:/>


アセンブラの知識皆無なので間違ってるかもしれませんが
0x0884F890: 0x0040F809 '..@.' - jalr $v0
読みピッタリですね。恐れ入りました。

他のセーブデータではEPCやBadVAddrが微妙に違っているのですが、それも貼った方がいいんでしょうか?
Tenor
 
記事: 4
登録日時: 2010年1月11日(月) 12:06

Re: セーブデータでクラッシュ

未読記事by neur0n » 2010年11月29日(月) 23:02

$v0 の値がどこから拾われているのかというと・・・

0x089241D8 + $a0 * 4

のアドレスからみたいですね。

$a0 には 0x88 が格納されていますが、これはセーブデータから取られた値でしょうか?
        \     テーレッテー    /
          \  ∧_∧   /
            |∩( ・ω・)∩|<・・・
          / 丶    | / \     
        /     ( ⌒つ´)    \
neur0n
 
記事: 88
登録日時: 2010年6月09日(水) 13:48
お住まい: 関東甲信越


Return to PSP Hack

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[8人]

cron