改造の館 掲示板


[ HOME掲示板TOP一覧表示ツリー表示トピック表示新規投稿記事検索記事修正・削除携帯用URL管理用 ]


[3091] SSFのベースアドレスについて Name:kamikami333 Date:2017/07/03(月) 13:46 [ 返信 ]
昨日、SSFのベースアドレスについて、質問しましたが途中で挫折しました。
しかし、このままではダメだと思ったので(私もできる様になりたい!)、大変申し訳ございませんが、再度質問します。

どうすれば「@(BASE+xxxxxxx)」のx部分を解析できるのか?を教えて下さい。

[3092] RE:SSFのベースアドレスについて Name:通りすがり Date:2017/07/03(月) 14:41
> どうすれば「@(BASE+xxxxxxx)」のx部分を解析できるのか?を教えて下さい。

はじめに、「改造の館」の「改造講座」の「ベースアドレス検索」

(例題はSFCですが応用は出来ると思います)通りに進めてください。

そして「ベースアドレス計算」をして出た数値から「BASE」分を引いた数値が

「xxxxxxx」となります。

BASEの確認方法はMECCの「プロセス選択」に、表示されています。

プロセス選択をすると下記のように表示されると思います。

SSF.exe(0xXXXXXXXX)

上記の「XXXXXXXX」の部分がBASEとなります。

つまり「ベースアドレス計算」をして出た数値から

「XXXXXXXX」の部分を引いた数値が

「xxxxxxx」となります。

[3093] RE:SSFのベースアドレスについて(Nobu様もお願いします) Name:kamikami333 Date:2017/07/03(月) 16:21
お返事ありがとうございます。

更に質問がありまして、そのコードには必ず「$100000・$200000」や「$100000・$6000000」がありますが、この数値ってSSのRAM領域を指すものなのでしょうか?

何もかも初めてなので、ベースアドレス計算からつまづいています。できれば、Nobuさんが投稿した、
@(BASE+182E6C),$100000,$200000
@(BASE+182E67),$100000,$6000000
を実例に、どうしてこの様な結果となったのか?を解説お願いしたいと思っております。

[3094] 横から失礼します Name:Nobu Date:2017/07/03(月) 18:58
SSFのベースアドレスの確認方法は、まず

SSFウィンドウ枠内の左上にある[About]→[cep]をクリックすれば確認出来ます。

表示されているベースアドレス、メモ帳[PC]に控えて置き


次に、ベースアドレスポインタを割り出す。

メモ帳[PC]に控えて置いた
[02]ベースアドレスと[60]ベースアドレスを、リージョン検索して

やり方は、
[改造講座]-→[ベースアドレス検索]を参照して下さい。


PCに装備されている、16進電卓[プログラマー]を使い

[02]ベースアドレスポインタと[60]ベースアドレスポインタをそれぞれ計算します。


「@(BASE+xxxxxxx)」xxxxxxx部分の計算式、
[ベースアドレスポインタ]-[エミュレータ領域の始点]=計算結果[xxxxxxx]



「@(BASE+xxxxxxx)」xxxxxxx部分に計算結果の数値を入れます。


実際に体験すればやり方が、わかってくると思いますので




> 更に質問がありまして、そのコードには必ず「$100000・$200000」や「$100000・$6000000」がありますが、
>この数値ってSSのRAM領域を指すものなのでしょうか?



こちらも、
[改造講座]-→[ベースアドレス検索]を参照して下さい。


[3095] RE:SSFのベースアドレスについて Name:kamikami333 Date:2017/07/03(月) 19:29
SSF.exe(0x011E0000)として、とりあえずやった事。

・リージョン検索をした結果
02は、
$011E1000(11)
$07313000(4)
$0883A000(2)
60は、
$011E1000(17)
$0197A000(1)
$07313000(4)
$0883A000(2)
括弧内は検索件数
という結果となった。
この数値から、それぞれのRAM領域を計算すればいいと解釈していますが、そのRAM領域の計算方法が分からない状態であります。っていうか、SSFの02及び60のRAM領域の数値自体が知りません。

[3096] RE:SSFのベースアドレスについて Name:Nobu Date:2017/07/03(月) 20:06
> SSF.exe(0x011E0000)として、とりあえずやった事。
>
> ・リージョン検索をした結果
>
> 02は、
> $011E1000(11)←ここをダブルクリックすると

オレンジ色のライン[11件]が、ベースアドレスポインタ候補です。

ウィンドウ枠内の右下に、虫メガネ[マーク]の横に↓[マーク]をクリックすると

ポインタ候補が移動します。

11件メモ帳に控えておきます。


> 60は、
> $011E1000(17)←ここをダブルクリック(同上)

17件メモ帳に控えておきます。




ベースアドレスポインタ選択は[02]&[60]アドレスの近いものを選んで下さい。

恐らく下1桁が違うと思います。(それぞれ1つに絞られると思います)


ベースアドレスポインタを計算します。

[ベースアドレスポインタ]-[011E0000]=計算結果[xxxxxxx]


「@(BASE+xxxxxxx)」xxxxxxx部分に計算結果の数値を入れます。


[02]ベースアドレスポインタ: @(BASE+xxxxxx),$100000,$200000
[60]ベースアドレスポインタ: @(BASE+xxxxxx),$100000,$6000000


[3097] RE:SSFのベースアドレスについて Name:kamikami333 Date:2017/07/03(月) 21:03
02及び60をメモリエディタのアドレス欄に記載さている数値を比較したところ、1件だけ同じ数値(01362E60)がヒットしました。
全く同じ数値ってありえるのでしょうか?

もし間違えがなければ、01362E60-011E0000=182E60
となるので、私の環境下では、
@(BASE+182E60),$100000,$200000
@(BASE+182E60),$100000,$6000000
という事になるのかな?

[3098] RE:SSFのベースアドレスについて Name:Nobu Date:2017/07/03(月) 21:33
> 02及び60をメモリエディタのアドレス欄に記載さている数値を比較したところ、1件だけ同じ数値(01362E60)がヒットしました。
> 全く同じ数値ってありえるのでしょうか?
>
> もし間違えがなければ、01362E60-011E0000=182E60
> となるので、私の環境下では、
> @(BASE+182E60),$100000,$200000
> @(BASE+182E60),$100000,$6000000
> という事になるのかな?


その設定は、残念ながら誤りです。

重複はありえません

- 例 -

_ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00000000 ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
00000010 ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **
00000020 ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **



アドレスポインタ候補の、オレンジ色マーカーライン

カーソルはどこが点燈していますか・・・?


カーソルの位置が、アドレスポインタのアドレスです。


[3099] RE:SSFのベースアドレスについて Name:kamikami333 Date:2017/07/03(月) 22:27
>カーソルはどこが点燈していますか・・・?
「12 34 AB CD」なら、1の部分が点燈しています。

[3100] RE:SSFのベースアドレスについて Name:Nobu Date:2017/07/03(月) 22:56
> >カーソルはどこが点燈していますか・・・?
> 「12 34 AB CD」なら、1の部分が点燈しています。


_ADDRESS行と+?桁のカーソル位置を確認


- 例 -
_ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
00AABB00 ** ** ** ** ** ** ** ** ** ** ** ** 12 34 AB CD

この場合のアドレスは、[00AABB0C]です。


[3101] RE:SSFのベースアドレスについて Name:kamikami333 Date:2017/07/04(火) 00:02
時間は掛かりましたが、理解できました。

SSFa.exe(7月2日版)

エンディアン ビッグ

設定方法 直接指定

ベースアドレス
@(BASE+180E9C),$100000,$200000
@(BASE+180E97),$100000,$6000000

以上です。

[3102] RE:SSFのベースアドレスについて Name:kamikami333 Date:2017/07/04(火) 00:10
今まで作業をおこなって分かった事。
02については、数値の後ろはCで終わっている事。
60については、数値の後ろは7で終わっている事。
リージョン検索については、例えば「1234」が連続であった時、次に変わる数値が意外と重要である事。
そしてその数値の+?桁がC又は7の場合、大抵はビンゴである事。

エキサイティングで大変面白かった!Nobuさん、通りすがりさんありがとう!感謝します!

以上です。

[3103] RE:SSFのベースアドレスについて Name:Nobu Date:2017/07/04(火) 00:28
> SSFa.exe(7月2日版)
>
> ベースアドレス
> @(BASE+180E9C),$100000,$200000
> @(BASE+180E97),$100000,$6000000

私のパソコンで確認しましたが
その設定は恐らく間違ってると思います。


もう1度
[エミュレータ領域の始点]の確認とベースアドレスの
確認をして下さい。

手順1からやり直して下さい


再起動するとエミュレータ領域の始点とベースアドレスが変わります。



> 今まで作業をおこなって分かった事。
> 02については、数値の後ろはCで終わっている事。
> 60については、数値の後ろは7で終わっている事。


断言は出来ませんが、それが正解だと思います。


P.S.

余計なことかもしれませんが、

投稿する場合、削除キーの設定をオススメします。


後で、記事修正するときに便利です。


[3104] RE:SSFのベースアドレスについて Name:kamikami333 Date:2017/07/04(火) 01:13
SSFa.exe(0x00F5000)が領域の始点になっているので、4バイト、16進数、リトルで検索した結果($00F51000をダブルクリック)、02については「010D0E9C」、60については「010D0E97」となり(下一桁だけ違うのは、この数値だけです)、そして16進数の計算機で計算した結果、02が180E9C、60が180E97となり、私の計算は合っていると思われます。

ちなみに私のPC上では問題なく出来ています。

追記
こちらも「SSF.exe(7月2日版)」について調査したところ、Nobu様が提示した数値と一緒でした。

恐らくは、SSFとSSFaとでは、違う数値が出るのでは?と考えております。

[3105] RE:SSFのベースアドレスについて Name:Nobu Date:2017/07/04(火) 01:59
始点が0x00C40000の場合

[02]ポインタアドレス:00DC2F4C

[60]ポインタアドレス:00DC2F47


[02]加算値:182F4C
[60]加算値:182F47 になると思いますが・・・?!


ちなみに

SSF TestVer
SSF.exe ←更新日時は2017/07/02 17:35です。


すみませんが
確認をお願いします。


[3106] こちらも確認しました。 Name:kamikami333 Date:2017/07/04(火) 07:38
こちらも「SSF.exe(7月2日版)」について調査したところ、Nobu様が提示した数値と一緒でした。

SSFa.exe(07/02)
@(BASE+180E9C),$100000,$200000
@(BASE+180E97),$100000,$6000000
SSF.exe
@(BASE+182F4C),$100000,$200000
@(BASE+182F47),$100000,$6000000

恐らくは、両方とも違うプロセスなので、違う数値が出るのでは?と考えております。

[3108] RE:SSFのベースアドレスについて Name:Nobu Date:2017/07/04(火) 12:49
> SSFa.exe(07/02)
> @(BASE+180E9C),$100000,$200000
> @(BASE+180E97),$100000,$6000000
> SSF.exe
> @(BASE+182F4C),$100000,$200000
> @(BASE+182F47),$100000,$6000000
>
> 恐らくは、両方とも違うプロセスなので、違う数値が出るのでは?と考えております。


kamikami333様、返信ありがとう御座います。

こちらの環境でも、調査したところ

kamikami333様のコメントどおりでした。


なるほど、
プロセス違いで、加算値が変わるのは気づきませんでした。


「大変参考になりました。」ありがとう御座いました。



P.S.

今回のベースアドレス解析を忘れないためにも、

その他のエミュレータでも、挑戦してみてください


[3109] RE:SSFのベースアドレスについて Name:kamikami333 Date:2017/07/04(火) 13:26
いえいえこちらこそ大変お世話になりました。
これからも精進して、楽しみたいと思っております。


  



無料レンタル掲示板・日記・ブログ WebSpace