ページ 11

パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2010年12月30日(木) 03:57
by mamosuke
いろいろexploitが見つかっていますが、最近はバッファーオーバーフローではないexploitが増えてきていますので、練習用にちょうどいいネタを投下します。

OFW6.30で対策されてしまったPatapon2 exploitですが、対策されたのは名前の後にコードを続けてバッファーオーバーフローを引き起こすexploitです。

今回全く別のParapon2 US Demoセーブデータを作ってみたところ、OFW6.35でクラッシュして電源が落ちました。
偶然$a0のアドレスの後ろに入れた"aaaa"をLoad Wordで拾ってきて$a1:0x61616161となっただけで単なるクラッシュなんですが、メモリーダンプを逆アセンブルして眺めているとjalr $t9なんていう命令があったりと、運が良ければ何か面白いものが出てくるんじゃないかなぁと思っています。

一人でやってても埒があかないので、みんなで練習がてらやってみませんか?
なお、もし万が一、いや億が一にもexploit見つけちゃった場合には絶対にセーブデータ公開しないでくださいね。


名前の後に"aaaa"などを入れるのは既に対策済ですので何をやっても復活しません。名前以外のところで探してください。

コード: 全て選択
Exception - Address load/inst fetch
Thread ID - 0x04617A21
Th Name   - user_main
Module ID - 0x0462033B
Mod Name  - Labo
EPC       - 0x08977844
Cause     - 0x90000010
BadVAddr  - 0x8E328EF0
Status    - 0x60088613
zr:0x00000000 at:0xDEADBEEF v0:0x8E328EF0 v1:0x85858584
a0:0x08D09158 a1:0x61616161 a2:0x00000002 a3:0x08CA1210
t0:0x00000001 t1:0xDEADBEEF t2:0xDEADBEEF t3:0xDEADBEEF
t4:0xDEADBEEF t5:0xDEADBEEF t6:0xDEADBEEF t7:0xDEADBEEF
s0:0x08C9FDC0 s1:0x08D09158 s2:0x09E63840 s3:0x08C9A360
s4:0x08C9FC80 s5:0x00000080 s6:0x08C9AABC s7:0x00000002
t8:0xDEADBEEF t9:0x0884B160 k0:0x09FFFB00 k1:0x00000000
gp:0x08B43B50 sp:0x09FFF520 fp:0x09FFFA90 ra:0x088682FC
0x08977844: 0x03E00008 '....' - jr         $ra


コード: 全て選択
disasm 0x08977820 40
0x08977820: 0x00000000 '....' - nop
0x08977824: 0x24020010 '...$' - li         $v0, 16
0x08977828: 0x14A20002 '....' - bne        $a1, $v0, 0x08977834
0x0897782C: 0x00000000 '....' - nop
0x08977830: 0x8C85001C '....' - lw         $a1, 28($a0)
0x08977834: 0x3C0208AD '...<' - lui        $v0, 0x8AD
0x08977838: 0x00051880 '....' - sll        $v1, $a1, 2
0x0897783C: 0x2442096C 'l.B$' - addiu      $v0, $v0, 2412
0x08977840: 0x00431021 '!.C.' - addu       $v0, $v0, $v1
0x08977844: 0x03E00008 '....' - jr         $ra
0x08977848: 0x8C420000 '..B.' - lw         $v0, 0($v0)
0x0897784C: 0x8CA30004 '....' - lw         $v1, 4($a1)
0x08977850: 0x00031880 '....' - sll        $v1, $v1, 2
0x08977854: 0x00831821 '!...' - addu       $v1, $a0, $v1
0x08977858: 0x03E00008 '....' - jr         $ra
0x0897785C: 0xAC650000 '..e.' - sw         $a1, 0($v1)
0x08977860: 0x30A2FFFF '...0' - andi       $v0, $a1, 0xFFFF
0x08977864: 0x00021080 '....' - sll        $v0, $v0, 2
0x08977868: 0x00821021 '!...' - addu       $v0, $a0, $v0
0x0897786C: 0x8C440000 '..D.' - lw         $a0, 0($v0)
0x08977870: 0x0A25DE81 '..%.' - j          0x08977A04
0x08977874: 0x30C5FFFF '...0' - andi       $a1, $a2, 0xFFFF
0x08977878: 0x7CA27C00 '.|.|' - ext        $v0, $a1, 16, 16
0x0897787C: 0x00021080 '....' - sll        $v0, $v0, 2
0x08977880: 0x00821021 '!...' - addu       $v0, $a0, $v0
0x08977884: 0x8C440000 '..D.' - lw         $a0, 0($v0)
0x08977888: 0x0A25DE81 '..%.' - j          0x08977A04
0x0897788C: 0x30A5FFFF '...0' - andi       $a1, $a1, 0xFFFF
0x08977890: 0x27BDFFE0 '...'' - addiu      $sp, $sp, -32
0x08977894: 0xAFBF000C '....' - sw         $ra, 12($sp)
0x08977898: 0xAFB00008 '....' - sw         $s0, 8($sp)
0x0897789C: 0x00808021 '!...' - move       $s0, $a0
0x089778A0: 0x24040008 '...$' - li         $a0, 8
0x089778A4: 0x27A5001C '...'' - addiu      $a1, $sp, 28
0x089778A8: 0x0E2A22A2 '."*.' - jal        0x08A88A88
0x089778AC: 0xAFA0001C '....' - sw         $zr, 28($sp)
0x089778B0: 0x8FA3001C '....' - lw         $v1, 28($sp)
0x089778B4: 0x24020003 '...$' - li         $v0, 3
0x089778B8: 0x1062000A '..b.' - beq        $v1, $v0, 0x089778E4
0x089778BC: 0x00000000 '....' - nop


コード: 全て選択
host0:/> disasm 0x088682fc 10
0x088682FC: 0x00402821 '!(@.' - move       $a1, $v0
0x08868300: 0x0E208285 '.. .' - jal        0x08820A14
0x08868304: 0x27A40050 'P..'' - addiu      $a0, $sp, 80
0x08868308: 0x3C0508A9 '...<' - lui        $a1, 0x8A9
0x0886830C: 0x27A40050 'P..'' - addiu      $a0, $sp, 80
0x08868310: 0x0E2081FC '.. .' - jal        0x088207F0
0x08868314: 0x24A5F93C '<..$' - addiu      $a1, $a1, -1732
0x08868318: 0xAFB2004C 'L...' - sw         $s2, 76($sp)
0x0886831C: 0x27A4004C 'L..'' - addiu      $a0, $sp, 76
0x08868320: 0x27A50050 'P..'' - addiu      $a1, $sp, 80

Re: パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2010年12月30日(木) 10:45
by iSn0wX
復活ですか・・・
というより、まだきちんと対策されていなかったのが驚きです。
私も試してみようと思います。

Re: パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2010年12月30日(木) 10:55
by 10take17
名前以外のアドレスを書き換えるということですか?

Re: パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2010年12月30日(木) 11:02
by パチュリー
http://124.38.212.90/m/j/143595/img/001 ... 7840902495
一応同じ結果ですが、クラッシュしたので
報告します。
それと、今見たら逆汗間違ってましたが・・
寝ぼけてたので気にしないで下さい(-_-;)
それと、他にも試してみます。

Re: パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2010年12月30日(木) 11:31
by パチュリー
10take17 さんが書きました:名前以外のアドレスを書き換えるということですか?

はい、そういう事になります。(^_^)/

Re: パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2010年12月30日(木) 11:37
by minomushi
これって普通に名前の後にあとにaaaaaa入力すれば良いのですか?
それとも入力するところを変えるとか?

Re: パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2010年12月30日(木) 12:20
by mamosuke
minomushi さんが書きました:これって普通に名前の後にあとにaaaaaa入力すれば良いのですか?
それとも入力するところを変えるとか?

名前の後に"aaaa"入れても、仮に$raまで書き換えなくてもOFW6.35では読み込み時に破損データと警告が出て使えません。

名前じゃないところで探す必要があります。
チートの応用でどこか数字が入るべきところに変な値を入れてクラッシュさせるとかそういう類いです。
unitXXXXというところを変えると、パタポンのユニットが出てこなくなりゲームが進まなくなったりと変なところには気が付きましたw

パチュリー さんが書きました:http://124.38.212.90/m/j/143595/img/0016686254.txt?a=57840902495
一応同じ結果ですが、クラッシュしたので
報告します。
それと、今見たら逆汗間違ってましたが・・
寝ぼけてたので気にしないで下さい(-_-;)
それと、他にも試してみます。

多分同じ事しましたねw そこはexploitにはならないです。

Re: パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2010年12月30日(木) 13:54
by パチュリー
http://124.34.237.98/m/j/143595/img/001 ... 7851118986
一応報告します。
何もコントロール出来てない・・
それと、確かに結果を見比べても
mamosukeさんと同じ事したと
思いますw
もっと他のやり方試してみます。
m(_ _)m

Re: パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2011年1月01日(土) 21:10
by minomushi
PATAPONに限らずみんごるでも出来るかなと思い試したところ、セーブデータの特性なのか、名前の後に入れない限りクラッシュしませんでした。
しかし、もう少し調べてみるかいはあるかと・・・

Re: パタポン2 Savedata Exploit 復活プロジェクト?

未読記事Posted: 2011年1月05日(水) 15:30
by tumugi
そういえばMOHH exploitの時も6.00で対策されましたが、後にkgsws氏によりFW6.00でもexploit(正確にはcheat device)がまた動かせるようになっていた気がします。
たぶん、他のゲームでもまたexploitが復活できる可能性はありますね。
調べてみる価値は十分にありますねw