![画像](http://i61.tinypic.com/2639d95.png)
此処に、表示されているのはno$psxによる、クラッシ結果です
$a1の値が$s2に格納されているのは見れば分かると思います
$a1の値はセーブデータ内の文字列です
$a0をFFFFFFFFで埋めてアドレス計算を簡易化して結果を一定化させました
$v1は任意の文字列なので、$v0と同じアドレスにすることによりexploitな結果に移行しました。
$a1+$sp のlw系です、任意のアドレス空間に飛ばせているのが見てわかるでしょう。
此処の空間にbinaryloader仕込めばいい(実際は違います)
- コード: 全て選択
Thread ID - 0x03317559
Th Name - popsmain
Module ID - 0x0331EA43
Mod Name - pops
EPC - 0x08B86264
Cause - 0x10000010
BadVAddr - 0x09CF6975
Status - 0x60088613
zr:0x00000000 at:0x8009804C v0:0x098C0000 v1:0x00000011
a0:0x656F6975 a1:0x3E82FFFC a2:0x09CF6161 a3:0x656F6975
t0:0x00000000 t1:0x00010750 t2:0x00010000 t3:0x80000000
t4:0x041B00B0 t5:0x800C2618 t6:0x801FFF28 t7:0x80097FFC
s0:0x801FFEFC s1:0x801FFEF8 s2:0xFFFFFFFF s3:0x00000000
s4:0x80098048 s5:0x8020002B s6:0x00000000 s7:0x801FFFA0
t8:0x801FFF20 t9:0x00023589 k0:0x0000002F k1:0x800A0000
gp:0x00010000 sp:0x09800000 fp:0x801FFEF4 ra:0x09562A00
0x08B86264: 0x8CC60000 '....' - lw $a2, 0($a2)
disasm $epc 10
0x08B86264: 0x8CC60000 '....' - lw $a2, 0($a2)
0x08B86268: 0x3C0308B8 '...<' - lui $v1, 0x8B8
0x08B8626C: 0x24636468 'hdc$' - addiu $v1, $v1, 25704
0x08B86270: 0x0066300A '.0f.' - movz $a2, $v1, $a2
0x08B86274: 0x00C00008 '....' - jr $a2
0x08B86278: 0x00000000 '....' - nop
これはPSPでpopsクラッシュをPSPlinkで結果を表示したものです
実際にはこの結果以外に4パターンのcrashがあります。
とりあえず。memdump
- コード: 全て選択
memdump 0x9ffe550
- 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f - 0123456789abcdef
-----------------------------------------------------------------------------
09ffe550 - 9C 6A FD 08 20 E6 FF 09 84 D6 B7 08 00 00 00 00 - .j.. ...........
09ffe560 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe570 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe580 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe590 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe5a0 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe5b0 - 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 - ................
09ffe5c0 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe5d0 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe5e0 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe5f0 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe600 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe610 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe620 - 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F - ................
09ffe630 - 10 11 12 13 00 00 00 00 00 00 00 00 00 00 00 00 - ................
09ffe640 - D7 B3 32 F8 AB 5E 55 1E 68 2D 08 8B A4 F8 E4 EF - ..2..^U.h-......
ddress 0x08FD6A9Cと、出ていますね、この領域が何処にあるか見てみましょう
- コード: 全て選択
memdump 0x8fd6a9c
- 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f - 0123456789abcdef
-----------------------------------------------------------------------------
08fd6a9c - 00 50 4D 56 80 00 00 00 00 00 00 00 00 01 02 03 - .PMV............
08fd6aac - 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 - ................
08fd6abc - D7 B3 32 F8 AB 5E 55 1E 68 2D 08 8B A4 F8 E4 EF - ..2..^U.h-......
08fd6acc - D1 02 D0 17 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6adc - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6aec - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6afc - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6b0c - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6b1c - 4D 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - MC..............
08fd6b2c - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6b3c - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6b4c - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6b5c - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6b6c - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6b7c - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - ................
08fd6b8c - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0E - ................
ご覧の通り、PS1のセーブデータ先頭区域MMC領域です、此処にバイナリローダー
を、仕込めません。
基本的にマジックナンバーを消すとデータとして読まれないかクラッシュするだけです。
仮にバイナリローダを仕込める場所を見つけることが出来ても残念ながら何らかの対策により
PS1から開けるメモリ?か、何かが対策されているため現状私の見つけたPS1不完全なexploitは最新FWでは絶対に動作しないという事になります。
過去のFWではkexploitが存在するので使用出来ますが。
私のこれは、最早何の意味もないクラッシュデータということになります。
ゲームタイトル クラッシュバンディグー3
ちなみに、クラッシュバンディグーシリーズは名前にちなんでるか知りませんが…全部結構面白いクラッシュを起こします。
no$psxでの、デバックはあまり意味をなさなかったようです。残念です。