昨天在vista 32-bit u版 下读取其他程序的内存,怎么老是不对啊
-----------------------------------------------------------------------
HWND iFHWND = ::FindWindowEx(NULL, NULL, NULL, "无标题 - 记事本");
DWORD iFindRet = (DWORD)iFHWND;
if ( ! iFindRet )
{
MessageBox("Find Error!", NULL, MB_ICONINFORMATION);
return ;
}
DWORD iwError = 0;
// PID
DWORD iFPID = 0;
GetWindowThreadProcessId(iFHWND, &iFPID);
iwError = GetLastError();
HANDLE iFHandle = NULL;
iFHandle = OpenProcess(PROCESS_VM_READ, FALSE, iFPID);
iwError = GetLastError();
char iReadDate[128];
memset(iReadDate, 0x0, 128);
DWORD iRetLen = 0;
DWORD iReadAddr = 0x00420030;
BOOL bSuc = FALSE;
bSuc = ReadProcessMemory(iFHandle, &iReadAddr, iReadDate, 128, &iRetLen);
iwError = GetLastError();
// [6/5/2008 bpboy]
if (iFHandle != NULL)
{
CloseHandle(iFHandle);
}
------------------------------------------------------------------------------------
在vista下打开任何程序返回的都是(OpenProcess) 0x0000002b
在xp下都是0x00000bfc
怎么回事啊...
不是说只有系统进程才要提升到debug权限的吗?
大家帮帮我 谢谢
[课程]Linux pwn 探索篇!