1

次のコードは、いくつかのコードで使用すると正常に動作します

MOV ECX,DWORD PTR DS:[0x41154]  //Address

しかし、アプリケーションでそのアドレスを変数として設定しようとすると、次のようなことをします

MOV ECX,DWORD PTR DS:[PointerAddress]

コードが実行されるとアプリケーションがクラッシュし、PointerAddress現在は次のように初期化されています

DWORD    PointerAddress = 0x41154;

誰が何が間違っているかを見つけることができますか?

4

1 に答える 1

4

ここ

[PointerAddress]

PointerAddress は、DWORD 値としてではなく、ポインターとして扱われます。

みたいな

*(DWORD*)PointerAddress

そして好きではない

PointerAddress

二重逆参照を実行すると、クラッシュします。

使ってみて

mov eax, PointerAddress
mov ecx, dword ptr ds:[eax]
于 2012-07-02T18:20:01.877 に答える