VC++读指定内存值

来源:百度知道 编辑:UC知道 时间:2024/05/23 23:03:57
我想要读 PCkekeNESwndclass的内存地址00586090的值,可是读出来是随机数,和PE读出来的完全不同,下面是我的代码,帮我看看哪里错了,并帮我改过来,谢了、

HWND hWnd = ::FindWindow(_T("PCkekeNESwndclass"), NULL);
DWORD id_num;unsigned int tmp;
DWORD dwNumberOfBytesRead;
if(hWnd==NULL)
{MessageBox("window error!");}
GetWindowThreadProcessId(hWnd, &id_num); //注意:第二个参数是进程的ID,返回值是线程的ID。
HANDLE hd = OpenProcess(PROCESS_ALL_ACCESS,FALSE, id_num);
TerminateProcess(hd, 0);
ReadProcessMemory(hd,(LPCVOID)586090,&tmp,4,&dwNumberOfBytesRead);
CString cs;
cs.Format("%d",tmp);
MessageBox(cs);
CloseHandle(hd);

代码看了,没明白。
为什么在OpenProcess之后要马上结束它呢?至少要先读点什么吧,不明白用意何在。
还有一个明显错误,(LPCVOID)586090这个应该是(LPCVOID)0x586090.