WriteProcessMemory的问题。写入的值并未被写进内存。 GetLastError这个函数要如何用啊,加在哪里啊,你能在我的程序上做一个例子吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if (0 == WriteProcessMemory(...)){ char szBuffer[80]; sprintf(szBuffer, "%d", GetLastError()); MessageBox(NULL, szBuffer, "Error Code", MB_ICONERROR);} DWORD hProcId; GetWindowThreadProcessId(HWND0,&hProcId); HANDLE nOK = OpenProcess(PROCESS_ALL_ACCESS ¦PROCESS_TERMINATE ¦PROCESS_VM_OPERATION ¦PROCESS_VM_READ ¦ PROCESS_VM_WRITE,1,hProcId); ReadProcessMemory(nOK,(LPCVOID)(0x00834eec),(LPVOID)&PLAY_X0,4,NULL);//这里得到的地图坐标PLAY_X0=100 if(WriteProcessMemory(nOK,(LPVOID)(0x00834ee0),&PLAY_X0,4,NULL)==0){CString tmp1_111="";tmp1_111.Format ("错误:%d",GetLastError());MessageBox(HWND0,tmp1_111,"请重新更新游戏或脚本",MB_OKCANCEL);}<==我得到的参数是6 ReadProcessMemory(nOK,(LPCVOID)(0x00834ee0),(LPVOID)&PLAY_X0,4,NULL);//这里却成了PLAY_X0=0, CloseHandle(nOK); 错误代码6 ERROR_INVALID_HANDLE? 真是奇怪了。另外, 你究竟是要写 0X00834EEC 还是 0X00834EE0? 你可以用VirtualQueryEx查一下对方内存是否可写。 如果不可以先用VirtualProtectEx改变一下保护标志再用WriteProcessMemory写。另外最好先检查一下你进程中的相关API是否被hook了, 如果是的话可以先从文件中恢复原始值再调用。 不过如果对方使用ring0驱动保护的话就比较麻烦了。 我每次在windows(admin权限下)都能写成功(不包括驱动程序的内存地址),不知道楼主是不是在linux上面没有写成功? 关于C++默认构造函数的问题 谁有VC操作VISIO的示例,发我一份 VC++ 6.0 转 VS2005 牛人帮解决vc下编译出错C2057 C2466,谢谢 组合框中的数据为什么不能显示? 为什么我对sqlserver数据库一执行insert操作就出错 关于消息传递的问题 VC数据库的问题!!帮忙!! 关于制作小于1ms级精度定时器的问题,请高手指点,急。。。。。。。。。 关于DATE的SQL查询 急啊 如何在单文档中添加tabcontrol
{
char szBuffer[80];
sprintf(szBuffer, "%d", GetLastError());
MessageBox(NULL, szBuffer, "Error Code", MB_ICONERROR);
}
GetWindowThreadProcessId(HWND0,&hProcId);
HANDLE nOK = OpenProcess(PROCESS_ALL_ACCESS ¦PROCESS_TERMINATE ¦PROCESS_VM_OPERATION ¦PROCESS_VM_READ ¦
PROCESS_VM_WRITE,1,hProcId);
ReadProcessMemory(nOK,(LPCVOID)(0x00834eec),(LPVOID)&PLAY_X0,4,NULL);//这里得到的地图坐标PLAY_X0=100
if(WriteProcessMemory(nOK,(LPVOID)(0x00834ee0),&PLAY_X0,4,NULL)==0)
{
CString tmp1_111="";
tmp1_111.Format ("错误:%d",GetLastError());
MessageBox(HWND0,tmp1_111,"请重新更新游戏或脚本",MB_OKCANCEL);
}<==我得到的参数是6
ReadProcessMemory(nOK,(LPCVOID)(0x00834ee0),(LPVOID)&PLAY_X0,4,NULL);//这里却成了PLAY_X0=0,
CloseHandle(nOK);
另外最好先检查一下你进程中的相关API是否被hook了, 如果是的话可以先从文件中恢复原始值再调用。 不过如果对方使用ring0驱动保护的话就比较麻烦了。