ポインターコード

スポンサーサイト

[ --/--/-- --:-- ] スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[タグ未指定] | TB(-) | CM(-)

ポインターコード

[ 2009/01/04 17:06 ] 解析日記

基準アドレスの見つけ方です。
まずは
FreeCheatを導入してから。
話はそれから。

一応ある程度他の記事を参考にしています。

つづき

まず変動するアドレスを見つける
そして0x8800000を足す

たとえばモンスターの体力が変動するアドレスで0x8B9874だとすると
ULJM-05500_8126231557_780.png


0x8B9874に0x8800000を足すと
0x90B9874になります

これの上位16bitをサーチ下記の画像参考
0x090Bで検索
ULJM-05500_812623179_109.png

結構候補があると思います。
初期設定で黄色い下線があったら基準アドレスです。
黄色い下線のアドレスで△を押してみてください。
基準先に飛びます。
メモリ見て0x8B9874に近いアドレスを探す

近いアドレスがあったらオフセプラスかオフセマイナスか見極める

サーチしたメモリが0x8B9874だから基準先が
0x8B9674だったら基準先の数字が小さいのでオフセプラスの200です。
逆に基準先が大きかったらオフセマイナスです。

変動するアドレス-基準先=オフセプラス
基準先-変動するアドレス=オフセマイナス
これでオフセットは分かるかと思います。

後はコード化して完了です。


8-bit書き込み
0x6aaaaaaa 0x000000vv
0xqqq00001 0xiiiiiiii
アドレスaaaaaaaに入ってる値を基準アドレスとし値vv
を基準アドレス-0x8800000+iiiiiiii+qqq*4に書き込む

16-bit書き込み
0x6aaaaaaa 0x0000vvvv
0xqqq10001 0x0000iiii
アドレスaaaaaaaに入ってる値を基準アドレスとし値vvvv
を基準アドレス-0x8800000+iiiiiiii+qqq*4に書き込む

32-bit書き込み
0x6aaaaaaa 0xvvvvvvvv
0xqqq20001 0xiiiiiiii
アドレスaaaaaaaに入ってる値を基準アドレスとし値vvvvvvvv
を基準アドレス-0x8800000+iiiiiiii+qqq*4に書き込む

8-bit書き込み(オフセマイナス)
0x6aaaaaaa 0x000000vv
0xqqq30001 0x000000ii
アドレスaaaaaaaに入ってる値を基準アドレスとし値vv
を基準アドレス-0x8800000-iiiiiiii+qqq*4に書き込む

16-bit書き込み(オフセマイナス)
0x6aaaaaaa 0x0000vvvv
0xqqq40001 0xiiiiiiii
アドレスaaaaaaaに入ってる値を基準アドレスとし値vvvv
を基準アドレス-0x8800000-iiiiiiii+qqq*4に書き込む

32-bit書き込み(オフセマイナス)
0x6aaaaaaa 0xvvvvvvvv
0xqqq50001 0xiiiiiiii
アドレスaaaaaaaに入ってる値を基準アドレスとし値vvvvvvvv
を基準アドレス-0x8800000-iiiiiiii+qqq*4に書き込む

追加オプション
0x6aaaaaaa 0xvvvvvvvv
0xqqq20001 0xiiiiiiii
0x00000000 0x00000000
nnnn>1のとき何もしないがqqqを入れる場合必要となる?
書き込みたいアドレスは基準アドレス-0x8800000+iiiiiiii+qqq*4になる。

0x6aaaaaaa 0xvvvvvvvv
0xqqq2nnnn 0xiiiiiiii
0x9sssssss 0xwwwwwwww
nnnn>2のときオフセットiiiiiiiiからssssss*4(32bit以外は他のシリアルと同じ)
ずつずらしながら書き込む。vvvvvvvvもwwwwwwww分ずつ増加して書き込まれる。

0x6aaaaaaa 0xvvvvvvvv
0xqqq00002 0xiiiiiiii
0x1sssssss 0x00000000
基準アドレス-0x8800000+iiiiiiii+qqq*4にある値を
基準アドレス-0x8800000+ssssssss+qqq*4に
vvvvvvvv分だけコピー

多重ポインタ
0x6aaaaaaa 0xvvvvvvvv
0x000t000n 0x0000zzzz
0xS000iiii 0xS000jjjj
....
0xS000ssss 0x00000000
aaaaaaa=ポインタアドレス、第1ベースアドレスがあるところ
t=最後に書き込むbit数、CWC参照
n=追跡する回数、ベースアドレスを読み込む回数
vvvvvvvv=書き込む値
S=オフセットの+/- 2でプラス、3でマイナス
iiii=第1ベースに+/-するオフセット
jjjj=第2ベースに+/-するオフセット
ssss=第(nn-1)ベースに+/-するオフセット
....
zzzz=最後+/-するオフセット(tに依存)

第1ベースアドレス=aaaaaaaにある値-0x8800000
第2ベースアドレス=第1ベースアドレス+/-iiiiにある値に-0x8800000
第3ベースアドレス=第2ベースアドレスから+/-jjjjにある値に-0x8800000
.....
最終書込アドレス=最後に来た第nベースアドレス-0x8800000+/-zzzzになる




FREECHEAT080323版以降専用
多重ポインタ
0x6aaaaaaa 0x00000000
0x000u0000 0x0000iiii
0x60000000 0x00000000
0x000u0000 0x0000jjjj
0x60000000 0x00000000
0x000u0000 0x0000kkkk
....
0x60000000 0xvvvvvvvv
0x000t0001 0x0000zzzz
0x90000000 0x00000000 ←オプションを入れることが可能。
aaaaaaa=ポインタアドレス、第1ベース
t=書き込むbit数、CWC参照
vvvvvvvv=書き込む値
u=オフセットの+/- 6でプラス、7でマイナス
iiii=第1ベース+/-するオフセット
jjjj=第2ベース+/-するオフセット
kkkk=第3ベース+/-するオフセット
....
zzzz=最後+/-するオフセット(tに依存)

第1ベースアドレス=aaaaaaaにある値-0x8800000
第2ベースアドレス=第1ベースアドレス+/-iiiiにある値に-0x8800000
第3ベースアドレス=第2ベースアドレスから+/-jjjjにある値に-0x8800000
.....
最終書込アドレス=最後に来たベースアドレス+/-zzzzになる
シリアルやコピーバイトも追跡先で使用できる。



多重はFreeCheatのポインタが使いやすいと思います。
ツールを使ったほうが分かりやすくて性格です。

変動に対応しないアドレスもしばしば
SCMに変えて今はFreeCheatがお勧めかも
[タグ未指定] | TB(0) | CM(28)
  1. ninja
    上の部分だけで できるんですか? なにが変動するかをみるんですか?
  2. by: 訪問者 * 2009/01/05 01:40 * URL [ 編集] | TOP↑


  3. 初めてコメントさせていただきます。

    0x6aaaaaaa 0x000000vv
    0xqqq00001 0xiiiiiiii

    aaaaaaaには基準アドレスをそのまま入れて良いんですか?
  4. by: JEY * 2009/01/05 13:01 * URL [ 編集] | TOP↑


  5. >>題名ninjaさん
    アドレスです

    >>JEY
    サーチして出てきた基準アドレスを入れてください
  6. by: RUIN * 2009/01/05 14:42 * URL [ 編集] | TOP↑


  7. FreeCheatのコードの設定ってどうやるんですか?
    前にも聞いたんですけれどわからなくて
  8. by: aaaaa * 2009/01/05 15:09 * URL [ 編集] | TOP↑

  9. ninja
    返信ありがとうございます
    なるほど! 分かりました
    0x6aaaaaaa
    このAAAAAAAの中にいれる数値のことを
    言っていたのですね?
  10. by: 訪問者 * 2009/01/05 16:48 * URL [ 編集] | TOP↑


  11. >>aaaaaさん
    http://unzu127fm.hp.infoseek.co.jp/data/FreeCheat.html
    ここ参照を


    >>題名ninjaさん
    そうです!
  12. by: RUIN * 2009/01/05 18:45 * URL [ 編集] | TOP↑


  13. コピペったらいかんよね~~~
  14. by: 訪問者 * 2009/01/05 22:10 * URL [ 編集] | TOP↑


  15. 返事ありがとうごさいました!!

    ところで基準アドレスをサーチする時なんですが、検索範囲の目安とかってありますか?
  16. by: JEY * 2009/01/06 10:50 * URL [ 編集] | TOP↑


  17. >>訪問者でゅえーす(名無し)さん
    やり方はどれも一緒で
    この記事はある程度他の記事と似ていることがありますが、私は自分の記事を書いています。
    URLとコードのほうも大丈夫です。

    >>JEYさん
    別に無いと思います。
    私の場合は候補が多かったので少なくしようと範囲をひくくしました。
  18. by: RUIN * 2009/01/06 13:30 * URL [ 編集] | TOP↑


  19. 初コメで質問ですが・・
    aには基準アドレスをというのはわかりましたがv,q,iにそれぞれ何を入れればよいのでしょうか?
    あと、ポインタ=基準先ですか?
  20. by: LUCIFER * 2009/03/11 22:05 * URL [ 編集] | TOP↑


  21. >>LUCIFERさん

    8-bit書き込み
    0x6aaaaaaa 0x000000vv
    0xqqq00001 0xiiiiiiii
    アドレスaaaaaaaに入ってる値を基準アドレスとし値vv
    を基準アドレス-0x8800000+iiiiiiii+qqq*4に書き込む
    を例にすると

    aaaaaaa=ポインタアドレス
    vv=書き込む値
    iiiiiiii=ポインタ基準先
    qqqq=よくわからないです。0と思えばいいでしょう。オフセットかもしれない
  22. by: RUIN * 2009/03/13 17:57 * URL [ 編集] | TOP↑


  23. 返信ありがとうございます!
    挑戦してみます^^
  24. by: LUCIFER * 2009/03/13 23:02 * URL [ 編集] | TOP↑

  25. すいません初心者です
    これって基準アドレス見つけて何するんですか?
    それと、上記の方法でダウンロードしたものの画面と、
    上のスクリーンショットの画面が違うので、よくわかりません(x_x)
    あと、
    「たとえばモンスターの体力が変動するアドレスで0x8B9874だとすると」
    という文がありますが、どういう意味でしょうか?
    どうか説明よろしくお願いします(-_-;)
  26. by: syouiti * 2009/05/18 17:55 * URL [ 編集] | TOP↑


  27. 最初はアドレスが変動するんですよ。
    つまり0x01234567というアドレスの値が変動して0x01234678と値が変動するので
    それを防ぐためにそのポインターコードがあるんです
    それの基準アドレスがないと第一関門が突破できません

    FreeCheatが導入できれば、スクリーンショットで画面が違っても使い方は同じです

    「たとえばモンスターの体力が変動するアドレスで0x8B9874だとすると」
    これはアドレスです
    本当は0x008B9874と書かれるのかもしれませんが、多分分かると思うので[00]を省略しました


    ほか分からないことがあれば何でもどうぞ~
  28. by: RUIN * 2009/05/18 18:39 * URL [ 編集] | TOP↑

  29. うーん…
    というと、常にアドレスは変動しているということですか?
    すると、ポインターコードは変動を止めるものなんでしょうか?
  30. by: syouiti * 2009/05/19 13:35 * URL [ 編集] | TOP↑


  31. 常にではなくてゲームによってアドレスが変動する物があったり、
    普段は変動しないアドレスもあります

    変動を止めるのではなく変動したところにちょうど書き込みできるようになっています
    フラグや装備変更などで大体変動します

    多分最初は難しいかもしれませんが慣れてくると理解できるようになります
  32. by: RUIN * 2009/05/19 18:37 * URL [ 編集] | TOP↑


  33. ありがとうございますm(_ _)m

    頑張ってみますp(^-^)q
  34. by: syouiti * 2009/05/20 12:42 * URL [ 編集] | TOP↑


  35. 追加オプションにある、

    0x6aaaaaaa 0xvvvvvvvv
    0xqqq00002 0xiiiiiiii
    0x1sssssss 0x00000000

    のsssssssってコピー先のオフセットを入れればいいんでしょうか?
  36. by: HUTA * 2010/05/17 18:03 * URL [ 編集] | TOP↑


  37. ssssssssはコピー先のオフセットであってると思いますよー
    使った事ないのであってるかわかりませんが・・・

    まあ、試してみるのも自分のスキルアップでいいと思いますよ
  38. by: RUIN * 2010/05/18 19:42 * URL [ 編集] | TOP↑

  39. Re: ポインターコード
    たとえばってところは適当な数値でいいのでしょうか?
  40. by: シロ * 2010/12/20 23:34 * URL [ 編集] | TOP↑

  41. Re: ポインターコード
    >>シロさん
    たとえばというのは探したアドレスが変動する場合です
  42. by: RUIN * 2010/12/20 23:45 * URL [ 編集] | TOP↑

  43. Re: ポインターコード
    ありがとうございました。
    FCでコード化するにはどうすればいいのでしょうか?

    あと、変動アドレスはどうやってとるのでしょうか?
  44. by: シロ * 2010/12/21 13:37 * URL [ 編集] | TOP↑

  45. Re: ポインターコード
    ありがとうございました。
    FCでコード化するにはどうすればいいのでしょうか?

    あと、変動アドレスはどうやってとるのでしょうか?
    質問ばかりですみません。
  46. by: シロ * 2010/12/21 13:38 * URL [ 編集] | TOP↑

  47. Re: ポインターコード
    8-bit書き込み
    0x6aaaaaaa 0x000000vv
    0xqqq00001 0xiiiiiiii
    アドレスaaaaaaaに入ってる値を基準アドレスとし値vv
    を基準アドレス-0x8800000+iiiiiiii+qqq*4に書き込む

    aaaaaaaはポインタアドレス
    vvは書き込みたいアドレス
    qqqqは特になにもないなら0でいいと思います
    iiiiiiiiはポインターアドレス先のオフセットです
  48. by: RUIN * 2010/12/22 21:54 * URL [ 編集] | TOP↑

  49. Re: ポインターコード
    難しいですね( ̄▽ ̄〃)


    あと、適当にサーチしたアドレスに
    8800000+してるんですが…


    サーチ失敗になります。


    あと、上4桁の16Bitって、数字、英語(0x)
    のどちらですか?


    例えば0x22EFB… だったら、
    どれが上4桁なんですか?


    あとサーチするとき8桁なのに
    アドレスは7桁…って時はどうしますか?



    かなり質問してすみません。
    サーチするときって、数値?比較?

    あと、ハンターのアドレスってどうやって
    求めますか?
  50. by: シロ * 2010/12/23 11:23 * URL [ 編集] | TOP↑

  51. Re: ポインターコード
    0x8800...を足した値の上から三つ目までです
    0x22EFBに88000を足してやればAAEFBになりますよね
    そして検索するときに
    検索する値を0x0AAEでやってみるとあったりなかったり・・・
    候補が多ければ、範囲を狭くすれば良いです

    サーチするとき8桁の意味がちょっと・・・
    アドレスは7桁です・・・

    数値と比較は場合において使い分ければ良いです

    ハンターのアドレスは明確なものがないので分かりませんが
    HPなどを比較でサーチしてみるとアドレス周辺にハンターに関連する値がたくさんあります
  52. by: RUIN * 2010/12/23 17:29 * URL [ 編集] | TOP↑

  53. Re: ポインターコード
    >0x8800...を足した値の上から三つ目までです
    0x22EFBに88000を足してやればAAEFBになりますよね

    どういう意味ですか?
    ぇ、88000をたすんですか!?

    >検索する値を0x0AAEでやってみるとあったりなかったり・・・
    候補が多ければ、範囲を狭くすれば良いです

    頭に0 をつけて検索するんですか?
    じゃあ、0x0078が上4ケタだと、
    「0x0007」で検索するんですか?


    >サーチするとき8桁の意味がちょっと・・・
    アドレスは7桁です・・・

    サーチした後に出るアドレス(32BIT)が
    8桁なんです。
    サーチした後の基準アドレスは、
    唯一7ケタである、8bitのよこにある
    数字だけでいいのでしょうか?
    その数字に+88000(?)(00)するのでしょうか?










    あと、前重複したコメントしてすみませんw
    パソコンの調子が悪くてw
  54. by: シロ * 2010/12/23 19:10 * URL [ 編集] | TOP↑

  55. アトモウスコシww
    >>まず変動するアドレスを見つける
    そして0x8800000を足す
    たとえばモンスターの体力が変動するアドレスで0x8B9874だとすると
    0x8B9874に0x8800000を足すと
    0x90B9874になります
    これの上位16bitをサーチ
    0x090Bで検索
    結構候補があると思います


    →ここまでは自分もわかりました


    >>初期設定で黄色い下線があったら基準アドレスです
    黄色い下線のアドレスで△を押してみてください
    基準先に飛びます
    メモリ見て0x8B9874に近いアドレスを探す
    近いアドレスがあったらオフセプラスかオフセマイナスか見極める
    サーチしたメモリが0x8B9874だから基準先が
    0x8B9674だったら基準先の数字が小さいのでオフセプラスの200です

    →ここがいまいちわかりません
    170の結果が出てポインタ(黄色い下線)を、それぞれ探しましたがありませんでした
    周辺にはあちらこちらにあるんですが・・・
    _L 118F230 ←(問題の変動アドレス)に近いポインタを探せばよいですよね


    それからお手数ですけど、例として書かれたMHP2Gのモンスターの体力についてコード化した場合の結果をaaaaaaなどの文字でなく数字で書いてもらっていいでしょうか?
    参考にさせていただきますので(●´ω`●)
  56. by: juvy * 2011/04/07 18:53 * URL [ 編集] | TOP↑
















管理者にだけ表示を許可する


Page Top↑
▲ Page Top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。