バイナリローダーについての質問

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

バイナリローダーについての質問

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

日本のとあるゲームでSavedata Exploitを発見したので「Hello World」を表示させようと、まもすけさんの記事を参考に
して作っていたのですが、フリーズするだけでなかなかうまくいかないので質問にきました

↓Exploit
WS000002.JPG


バイナリローダーについての質問なんですが、"sceKernelDcacheInvalidateRange", "sceKernelDcacheWritebackInvalidateAll" がない場合は
"sceKernelDcacheWritebackAll"や"sceKernelDcacheWritebackRange"、"sceKernelDcacheWritebackInvalidateRange"で代用できるのでしょうか?

セーブデータを作成した手順は、

1. EBOOT.BINが復号化された状態のBOOT.BINをprxtoolを使って、関数のアドレスのリストを作成
(0x08800000より後のアドレスではなかったので、psplinkのmodimpコマンドを使って調べました ※ちゃんと0x08804000を引くと、prxtoolと同じ結果になりました)

2. sparta_sdkのloader.sの5箇所を書きなおし、コンパイルしてa.binを作成
("sceKernelDcacheInvalidateRange"は"sceKernelDcacheWritebackInvalidateRange"を代用)

3. 復号化したセーブデータをひらいて、名前のアドレスからpsplinkの$raレジスタのところに表示される手前までのアドレスに'a'と書きこむ
4. exploitを起こすアドレスの近くの4の倍数のアドレスにa.binを書きこむ
5. a.binの最初のアドレスから0xF0を足したアドレスに"ms0:/h.bin"と書きこむ
6. 実際にクラッシュさせて、psplinkで、savemem 0x08800000 0x20000000 memdump.bin と入力して、メモリのダンプをとる
7. ダンプしたメモリをひらいて、a.binの最初のアドレスを探し、そのアドレスに0x08800000を足す
8. psplinkで$raレジスタのところに表示されるアドレスに"7."で取得したアドレスを書きこむ
(例 "0x08A1CB68" だと "68 CB A1 08" と書きこむ)
9. とりあえずsparta_sdk.hとmain.cは"sceKernelExitGame"以外は消してコンパイルし、ms0:/h.binを読み込んだら終了されるかどうかテストする

こんな感じでやってますが、どこかおかしはないでしょうか?
plum
 
記事: 6
登録日時: 2010年11月28日(日) 22:42

バイナリローダーについての質問

スポンサードリンク

スポンサードリンク
 

Re: バイナリローダーについての質問

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

plum さんが書きました:日本のとあるゲームでSavedata Exploitを発見したので「Hello World」を表示させようと、まもすけさんの記事を参考に
して作っていたのですが、フリーズするだけでなかなかうまくいかないので質問にきました

↓Exploit
WS000002.JPG


バイナリローダーについての質問なんですが、"sceKernelDcacheInvalidateRange", "sceKernelDcacheWritebackInvalidateAll" がない場合は
"sceKernelDcacheWritebackAll"や"sceKernelDcacheWritebackRange"、"sceKernelDcacheWritebackInvalidateRange"で代用できるのでしょうか?

セーブデータを作成した手順は、

1. EBOOT.BINが復号化された状態のBOOT.BINをprxtoolを使って、関数のアドレスのリストを作成
(0x08800000より後のアドレスではなかったので、psplinkのmodimpコマンドを使って調べました ※ちゃんと0x08804000を引くと、prxtoolと同じ結果になりました)

2. sparta_sdkのloader.sの5箇所を書きなおし、コンパイルしてa.binを作成
("sceKernelDcacheInvalidateRange"は"sceKernelDcacheWritebackInvalidateRange"を代用)

3. 復号化したセーブデータをひらいて、名前のアドレスからpsplinkの$raレジスタのところに表示される手前までのアドレスに'a'と書きこむ
4. exploitを起こすアドレスの近くの4の倍数のアドレスにa.binを書きこむ
5. a.binの最初のアドレスから0xF0を足したアドレスに"ms0:/h.bin"と書きこむ
6. 実際にクラッシュさせて、psplinkで、savemem 0x08800000 0x20000000 memdump.bin と入力して、メモリのダンプをとる
7. ダンプしたメモリをひらいて、a.binの最初のアドレスを探し、そのアドレスに0x08800000を足す
8. psplinkで$raレジスタのところに表示されるアドレスに"7."で取得したアドレスを書きこむ
(例 "0x08A1CB68" だと "68 CB A1 08" と書きこむ)
9. とりあえずsparta_sdk.hとmain.cは"sceKernelExitGame"以外は消してコンパイルし、ms0:/h.binを読み込んだら終了されるかどうかテストする

こんな感じでやってますが、どこかおかしはないでしょうか?

おめでとうございます。間違いなくexploitですね。ただJAX氏のexploitに非常に似ています。J416氏に確認を取ってください。

少しだけ気になったことなど。
"sceKernelDcacheWritebackInvalidateAll"の代わりに"sceKernelDcacheWritebackAll"が使えるという話は以前J416氏から聞いたので大丈夫だと思います。
私のときは"sceKernelDcacheInvalidateRange"が無かったのでバイナリローダーからもコメントアウトしましたが動きました。

sparta_sdk.hのアドレスの書き換えが手順にありませんがやってますか?
書き換えるのは以下のものだけでいいとJ416氏が仰っていました。
コード: 全て選択
sceDisplayWaitVblankStart
sceDisplaySetFrameBuf
sceDisplaySetMode
sceCtrlSetSamplingMode
sceIoOpen
sceIoClose
sceIoWrite
sceKernelExitGame
sceKernelDcacheWritebackAll
sceCtrlReadBufferPositive

ここで聞くなら9の手順をせずに最初からHelloWorldを狙って大丈夫だと思います。
twitterはじめました。
http://twitter.com/teck4
Blogもはじめました。
http://teck4.com/blog/
teck4
 
記事: 81
登録日時: 2010年5月06日(木) 00:21

Re: バイナリローダーについての質問

未読記事by minomushi » 2010年11月29日(月) 01:06

おめでとうございます。
exploitです。
しかし、teck4氏の言うとおりJAX氏の物と非常に似ています。
j416氏に連絡をとった方が良いかと。

で質問の件ですが
方法的にはあっていますよ。
loader.sをそのまま書き換えれば良いだけです。
minomushi
 
記事: 97
登録日時: 2010年9月12日(日) 13:27
お住まい: 日本だと、思うんだが・・・・・・・・違うのか?

Re: バイナリローダーについての質問

未読記事by j416 » 2010年11月29日(月) 01:08

おめでとうございます。
ただかなりJAX氏のものに似ています。以下の画像がJAX氏のexploitのときの画像です。
画像
一応確認のPM送りました。よろしくお願いします。
HPは自宅鯖に移転しました。
http://j416.dip.jp/
j416
 
記事: 76
登録日時: 2010年1月11日(月) 10:04
お住まい: 日本

Re: バイナリローダーについての質問

未読記事by plum » 2010年11月29日(月) 01:27

PM確認しましたが、おそらくですが被ってますね
結構有名なゲームなのでどなたのかと被ってるだろうとは思っていましたがw
とりあえず「Hello World」が表示できるまで頑張ってみます
plum
 
記事: 6
登録日時: 2010年11月28日(日) 22:42

Re: バイナリローダーについての質問

未読記事by j416 » 2010年11月29日(月) 01:31

plum さんが書きました:PM確認しましたが、おそらくですが被ってますね
結構有名なゲームなのでどなたのかと被ってるだろうとは思っていましたがw
とりあえず「Hello World」が表示できるまで頑張ってみます

まだ違う可能性があるので、PM送りました。どうでしょ。
HPは自宅鯖に移転しました。
http://j416.dip.jp/
j416
 
記事: 76
登録日時: 2010年1月11日(月) 10:04
お住まい: 日本

Re: バイナリローダーについての質問

未読記事by mamosuke » 2010年11月29日(月) 01:33

おめでとうございます。

とりあえずはHello World表示を頑張ってください!
mamosuke
管理人
 
記事: 268
登録日時: 2009年12月08日(火) 01:11

Re: バイナリローダーについての質問

未読記事by plum » 2010年11月29日(月) 01:48

j416 さんが書きました:
plum さんが書きました:PM確認しましたが、おそらくですが被ってますね
結構有名なゲームなのでどなたのかと被ってるだろうとは思っていましたがw
とりあえず「Hello World」が表示できるまで頑張ってみます

まだ違う可能性があるので、PM送りました。どうでしょ。

PM確認しました
その文字は入ってませんでした
plum
 
記事: 6
登録日時: 2010年11月28日(日) 22:42

Re: バイナリローダーについての質問

未読記事by j416 » 2010年11月29日(月) 01:52

plum さんが書きました:
j416 さんが書きました:
plum さんが書きました:PM確認しましたが、おそらくですが被ってますね
結構有名なゲームなのでどなたのかと被ってるだろうとは思っていましたがw
とりあえず「Hello World」が表示できるまで頑張ってみます

まだ違う可能性があるので、PM送りました。どうでしょ。

PM確認しました
その文字は入ってませんでした

被った可能盛大ですね・・・。orz
PM送りました。できればPMで返すようお願いします。
HPは自宅鯖に移転しました。
http://j416.dip.jp/
j416
 
記事: 76
登録日時: 2010年1月11日(月) 10:04
お住まい: 日本


Return to PSP Hack

オンラインデータ

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

cron