1

我有一个 HMODULE 值等于:00007FF695820000 并且我需要它是 0x7FF695820000 但因为该值是正确的十六进制值,将其转换为十六进制只会使其成为更大的十六进制值。

有谁知道我可以简单地将 0x 添加到开头或让我的 ReadProcessMemory 认为这是一个十六进制值而不是十进制值的方法。

它是 HMODULE 变量的原因是因为我正在使用它来获取 Solitare.exe 的基地址,但目前无法从中读取地址,因为我的 ReadProcessMemory 只是先将其转换为十六进制,因此读取了错误的地址。

4

1 回答 1

1

提到的地址00007FF695820000是一个uint64_t整数。要调用该函数,您应该关心变量类型,而不是它的视觉表示。

您可以通过以下方式读取进程内存:

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

要使用ReadProcessMemory你的hProc句柄应该有PROCESS_VM_READ访问权限。

于 2016-09-01T05:33:06.927 回答