[PR]看護師の好条件な求人情報満載:年間30,000人の転職看護師が利用中
ポインタとはメモリ上にアドレスが表示されているところをいいます。
まあ辞書でいう目次だか索引みたいなものだと思ってください。
ポインタ(固定アドレス)
|−基準アドレス(ポインタに入っているアドレス値)
基準アドレス+差(オフセット)で特定のデータにアクセスする
--------------------------------------------------------------
オフセット=0の場合
数値サーチとかででてきたアドレスに+0x8800000してサーチしてみる。
運がよければこれだけで見つかります。+0x880000を足す理由はPSPの実メモリの0x8800000がCWCアドレス0になっているからです。CWCがアドレス部に+8800000してコード処理していると思われる?
PSP 0x0000000
|
|
|
PSP 0x8800000 CWC開始アドレス0x0000000
|
|
|
PSP 0xA000000 CWC終了アドレス0x1800000
例:SO1のアイテムなど
----------------------------------------------------------------
オフセット=0で無い場合
cwcだと候補が10までしかでないため、SCMMOD/FreeCheatやCheatMasterFusionを使う
例:みんごる,FreeCheat/SCMMOD使用


風のアドレスは文字列サーチで3d/windのところから常に-0x8Bしたところにあります。今回は0x009D9B08から-0x8Bなので0x009D9A7Dが風力のアドレスになる。ここで0x009D9A7Dに0x8800000をたすと0x091D9A7Dになる。さらに上位ビットの0x091Dで16bitサーチをして0x091D9A7Dに近そうなアドレスだけメモする。




リセットするなりしてもう一度しらべる
| アドレス |
1回目 |
2回目 |
3回目 |
| 方向 |
0x09D9A36 |
|
0x8452B6 |
| 3D/WIND |
0x09D9B08 |
0x888B78 |
0x845388 |
| 風 |
0x09D9A7D |
0x888AED |
0x8452FD |
| アドレス候補 |
1回目メモリにある値;差分 |
2回目〃;差分 |
3回目〃;差分 |
| 0x3641A4 |
0x091D9720;0x35D |
0x09088790;0x35D |
0x09044FA0;0x35D |
| 0x33ECA4 |
0x091D9670;0x40D |
0x090886E0;0x40D |
0x0904AE80;×一致せず |
| 0x3424EC |
0x091D93F0;0x68D |
0x09088460;0x68D |
0x0904AB00;×一致せず |
| 0x34258C |
0x091DBB70;0xF3 |
0x0908ABE0;0xF3 |
0x0904AE90;×一致せず |
#差分=|メモリにある値-(kaze+0x8800000)|
3641A4がポインタアドレスだとわかるのであとはコード化
6aaaaaaa 000000vv
000t0001 0000ssss
aaaaaaa=3641A4,vv=00〜7F 逆風FF〜7F,t=0(8bit),ssss=035D
だいたい差分が一番近いのが使えます。慣れれば鶴使用より早い場合もあ
るのでサーチして候補がおおい場合以外はやってみたほうがいいかも。
追記:FCだと数値フィルターがあるので0x8800000でふるい落とすと見やすくなります。
-----------------------------------------------------------------
例:PATAPON2体験版ステータス、CMFusion使用

最初に比較を選択します。

YGF_GFPからPATAのデータらしきものが並んでるのでこれをメモっておく。DUMPをとってじっくり観察すればわかります。

ステージ中1回目

ステージ中1回目の時、再サーチする。
□で変化量が指定できるので(ベースアドレスの変化)=0xFB0F40-0xEC88C0=0xE8680
を入力して、減少を選択します。

数値0x8800000未満のものはポインタではないのでふるい落とします。数値大で0x8800000を入力して実行。

結果はほぼ1つしかでません。あとは確認だけ。

ステージ中2回目で再確認して終了。ここはオフセ0なので一番上の方法でもでるけど。
DUMPを眺めると、unit2からが弓ポンの初期データになっており、各unitのでーたさいずが0x1C0なので2*0x1C0,YGF_GFPからunit0までが0x80。unit2のオフセットが0x400になる。
あとはメモリでステータスの差分をしらべてコード化するだけです。入れっぱなしだとフリーズするのでPADが必須。
戻る( ´∀`)