C ++ ReadProcessMemory буфер всегда отображает 0

мой &pTemp

Так что я думаю, что не очень хорошо понимаю это. Если я не ошибаюсь, значение указателя должно храниться в pTemp, верно? Итак, если базовый указатель 0x00001A, разве pTemp не должен отображать то же самое? Я действительно новичок в C ++, и любая помощь будет оценена!

DWORD pointer = baseAddress;
DWORD pTemp;
DWORD pointerAddress;

cout << "Base Address: " << (DWORD*) pointer << endl;

for (int i = 0; i < PointerLevel; i++)
{
if (i == 0)
{
ReadProcessMemory(handle, (LPVOID)pointer, &pTemp, sizeof(4), NULL);
cout << "pTemp: " << pTemp << endl;

-3

Решение

Попробуй это:

void * src_addr = reinterpret_cast<void *>(baseAddress);
std::size_t n;

if (ReadProcessMemory(handle, src_addr, &pTemp, sizeof pTemp, &n))
{
if (n == sizeof pTemp)
{
std::cout << "Success: pTemp = " << pTemp << "\n";
}
else
{
std::cout << "We only read " << n << " bytes, not the expected "<< sizeof pTemp << " bytes.\n";
}
}
else
{
std::cout << "Failed to read process memory.\n";
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]