我正在尝试使用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;
}
任何帮助都将不胜感激。
答案 0 :(得分:4)
不应该是
ReadProcessMemory(piProcessInfo.hProcess, (void *)address, buffer, length, &bytesRead);
?如果你给缓冲区指针地址作为输入参数,那么ReadProcessMemory将它复制到缓冲区指针所在的位置(不是缓冲区,而是复制到缓冲区指针中的空间) - 并且它在堆栈上,堆栈被破坏。