ステップ6


Pointers: (PW=098712)

チュートリアル下部に2つのボタンがあります。
1つは値を変更するボタンで、もう1つは値と値を格納するアドレスを変更するボタンになっています。
imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step6_1.PNG)

2つ目のボタンを押したら値が5000以上になるようにすることで次のステップに進めるようになります。
これをするには値を格納しているアドレスを指すポインタを見つける必要があります。
ポインタを見つけるには以下の2つの方法があります。

メモリスキャンで見つける

まず始めに、値の絞り込みを行います。
絞りこんだ値を格納しているアドレスをさらに検索します。
見つかったアドレスがポインタになります。
imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step6_2.PNG)

アセンブリコード周辺から見つける

まず始めに、値の絞り込みを行います。
見つかったアドレスに対して''find out what accesses this address''機能を使用します。
値を変更すると、リストにアセンブラコードが追加されます。

00423ABB - 0F85 DA000000 - jne 00423B9B
00423AC1 - A1 80036900 - mov eax,[00690380]
00423AC6 - 8B 00 - mov eax,[eax] <<
00423AC8 - 89 45 F4 - mov [ebp-0C],eax
00423ACB - B8 E8030000 - mov eax,000003E8
この00690380がポインタになります。
元のプログラムに依存しますが、このようにアクセスする直前にポインタが見つかる場合があります。

チートテーブルにポインタが指すアドレスを追加する

チートテーブル右上にある''Add Address Manually''ボタンをクリックします。
Add Addressウインドウが開いたら、下部のPointerのチェックボックスをチェックし、見つけたポインタのアドレスを追加します。
imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step6_3.PNG)
チートテーブルにポインタのアドレスを追加すると、アドレスがP->xxxxxxxxと表示されます。
xxxxxxxxの部分ががあなたが見つけたアドレスになっていることが確認できるでしょう。
imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step6_4.PNG)
テーブルに追加したポインタを利用して値を変更しても5000になるように固定します。
そのあとで、'Change pointer'をクリックすると、次のステップ7へ進めるようになります。

より複雑なポインタの例

[EAX*2+EDX+00000310]
EAX = 4C
EDX = 00801234
この例では、EDXレジスタがポインタを保持しており、EAX*2+00000310はオフセットになっています。
現在のオフセット値は'2*4C+00000310=3A8'となっており、00801234+3A8番地の値を返すことが分かります。

備考

ポインタスキャナー機能を利用してこのアドレスのポインタを見つけることも可能です。
最終更新:2014年07月10日 11:52