它在msdn网站上提供了一个非常简短的描述,说“尝试访问无效地址”。我只是不确定它是否意味着无效,因为“这不是一个地址”或“你不能使用这个地址!”
因为我不确定它是哪一个,所以很难决定下一步该尝试什么。
我对WriteProcessMemory的调用:
if(!WriteProcessMemory(hProcess, (LPVOID)loc.c_str(), (LPVOID)"Book of Stupid", sizeof("Book of Stupid"), NULL))
{
std::cout << "writefail to " + loc + "\nerror ";
std::cout << GetLastError() << std::endl;
}
谢谢你的时间
答案 0 :(得分:2)
这正是它所说的,这个地址无法修改。你的函数调用看起来不对:
(LPVOID)loc.c_str()
这看起来像是一个本地的std :: string,所以你试图修改本地地址(来自你自己的应用程序),在其他一些app hProcess中?那肯定会失败。
进一步说明,假设hProcess用于当前进程,那么你必须确保loc实际上很长时间才能被修改。