有人可以請幫助我,我不知道爲什麼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()來找出東西的位置。 –