有人可以请帮助我,我不知道为什么ReadProcessMemory函数失败,GetLastError = 299.这是我的代码,我看不出有什么不对。ReadProcessMemory总是失败与GLE:299
if(ReadProcessMemory(hProcess, (void*)0, IDH_Buffer, sizeof(IMAGE_DOS_HEADER), 0) != true)
std::cout << "Failed to read from Process, GLE=" << GetLastError() << "\n";
IDH_Buffer已被分配,hProcess非NULL
我的应用程序运行作为管理员和我试着从一个标准用户模式应用程序读取应用程序。
请你能劝我。 由于
您不应该将系统函数的返回值与“true”进行比较,您应该检查它们是否为“== false”。原因是错误,它保证返回0.在成功它可以返回任何其他。与“真”相比是不正确的。但是,这可能不是你的问题。 – SoapBox
一个进程从地址0x400000开始,而不是0.那么,无论如何,ASLR(地址空间布局随机化)会把这个过程分散开来。主要是为了阻止你做你打算做的事情。你确实需要使用VirtualQueryEx()来找出东西的位置。 –