C ++ ReadProcessMemory в байтовый массив - PullRequest
0 голосов
/ 07 октября 2011

Я пытаюсь использовать ReadProcessMemory, чтобы прочитать динамическое количество байтов в массив, а затем вернуть его.Я просто не могу заставить его работать должным образом.Мой текущий код ...

byte *Application::readMemory(DWORD address, int length) {
    byte *buffer = new byte[length];
    SIZE_T bytesRead;
    ReadProcessMemory(piProcessInfo.hProcess, (void *)address, &buffer, length, &bytesRead);
    return buffer;
}

Любая помощь будет оценена.

1 Ответ

4 голосов
/ 07 октября 2011

Не должно ли быть

   ReadProcessMemory(piProcessInfo.hProcess, (void *)address, buffer, length, &bytesRead);

? Если вы указываете адрес указателя буфера в качестве входного параметра, то ReadProcessMemory копирует его в том месте, где находится указатель буфера (не на буфер, а на указатель буфера, пригодный для использования и далее), и если он находится в стеке, стек поврежден.

...