0

我正在尝试使用 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;
}

任何帮助,将不胜感激。

4

1 回答 1

4

难道不应该

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

? 如果您将缓冲区指针地址作为输入参数,则 ReadProcessMemory 将其复制到缓冲区指针所在的位置(不是缓冲区,而是缓冲区指针变量和更远的位置) - 并且它在堆栈上,堆栈被损坏。

于 2011-10-07T14:24:54.517 回答