我Hook了WriteProcessMemory,我得到了进程句柄,我希望从这个进程句柄来反查出PID,从而知道是哪个程序进行的WriteProcessMemory。有哪个函数可以从进程句柄得到进程ID呢,欢迎大家讨论!
解决方案 »
- vc 按钮放到msflexgrid表格控件里,按钮消息响应不了?谢谢
- 进程环境变量和系统环境变量的内容一样?
- VS2008 属性窗口 没有显示出 消息映射函数,何解?
- edit control 如何定位客户区的位置到文档末尾
- vc++通过ADO连接access,数据库第一个表能打开,第二个表不能打开?
- 数据导成Excel出现错误,在线等待,
- CListCtrl对象如何将背景色设为透明?在线急等
- 求HOOK函数的DLL代码
- 有没有用过VMware的人?
- vc实现 smtp协议发邮件 最后一步就解答!
- vc++ 20005 想要按下button後.. 在空白地方再生成一個新button
- CFormView的派生类加入一个Group Box后,改变View的大小,Group Box闪烁得厉害。但如果ModifyStyle(0, WS_CLIPCH
HANDLE Process
);
美女明慧啊……不仅仅是XP,而且必须是XP SP1以上。但现在有谁不是XP SP2呢?
HANDLE ProcessHandle,
PROCESSINFOCLASS ProcessInformationClass,
PVOID ProcessInformation,
ULONG ProcessInformationLength,
PULONG ReturnLength);DWORD MyGetProcessId(HANDLE h)
{
static pfnQueryInformationProcess ntQIP = (pfnQueryInformationProcess) GetProcAddress(GetModuleHandle("NTDLL.DLL"),"NtQueryInformationProcess");
static pfnGetProcID getPId = (pfnGetProcID) GetProcAddress(GetModuleHandle("KERNEL32.DLL"),"GetProcessId"); if ((ntQIP == NULL) && (getPId == NULL))
throw Exception("Can't retrieve process ID : GetProcessID not supported"); if (getPId != NULL)
return getPId(h);
else
{
PROCESS_BASIC_INFORMATION info;
ULONG returnSize;
ntQIP(h, ProcessBasicInformation, &info, sizeof(info), &returnSize); // Get basic information.
return info.UniqueProcessId;
}
}