1

00007FF695820000 に等しい HMODULE 値があり、0x7FF695820000 にする必要がありますが、値は正しい 16 進数値であるため、16 進数に変換するとさらに大きな 16 進数値になります。

最初に0xを追加するか、ReadProcessMemoryにこれを10進数ではなく16進数であると思わせる方法を知っている人はいますか。

それが HMODULE 変数である理由は、Solitare.exe のベース アドレスを取得するために使用しているが、ReadProcessMemory が最初にそれを 16 進数に変換するだけで間違ったアドレスを読み取るため、現在そこからアドレスを読み取ることができないためです。

4

1 に答える 1

1

言及されたアドレス00007FF695820000uint64_t整数です。関数を呼び出すには、変数の型を気にする必要がありますが、視覚的な表現ではありません。

プロセス メモリは、次の方法で読み取ることができます。

UINT_PTR addr = (UINT_PTR)GetModuleHandle("Solitare.exe");
ReadProcessMemory(hProc, (void*)addr, pBuffer, nSize, &BytesRead);

ハンドルを使用ReadProcessMemoryするには、アクセス許可が必要です。hProcPROCESS_VM_READ

于 2016-09-01T05:33:06.927 に答える