本文介绍了C ++ ReadProcessMemory放入字节数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用ReadProcessMemory将动态量的字节读取到数组中,然后将其返回.我根本无法正常工作.我当前的代码是...

I'm attempting to use ReadProcessMemory to read a dynamic amount of bytes into an array and then return it. I simply can't get it to work properly. My current code is...

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;
}

任何帮助将不胜感激.

推荐答案

应该不是

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

?如果将缓冲区指针地址作为输入参数,则ReadProcessMemory会将其复制到缓冲区指针所在的位置(不是缓冲区,而是可变或超出缓冲区指针的位置)-并认为它在堆栈上,堆栈会损坏.

? If you give buffer-pointer address as input parameter, then ReadProcessMemory copies it where buffer pointer lies (not to the buffer but into buffer pointer vatiable and beyond) - and sice it is on the stack, stack gets corrupted.

这篇关于C ++ ReadProcessMemory放入字节数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-15 01:57