|
本帖最后由 Koma 于 2012-3-29 16:25 编辑
好久之前在gg找到的一份代码,有兴趣的看看!
部分代码:
 - long __stdcall MyNtQuerySystemInformation(
- DWORD SysInformatoinClass,
- PVOID SystemInformation,
- ULONG SystemInformationLength,
- PULONG ReturnLength OPTIONAL)
- {
- long Result;
- Result = ((PNTQUERYSYSTEMINFORMATION)(PROC)(*NtQuerySystemInformationHook))
- (SysInformatoinClass,SystemInformation,SystemInformationLength,ReturnLength);
- //一定要使用结构化异常处理,否则就有可能出现异常对话框。
- __try
- {
- if(SysInformatoinClass == 5 && Result == 0 /* STATUS_SUCCESS */)
- {
- PPROCESSINFO pProcessInfo;
- PPROCESSINFO pPrevProcessInfo;
- pProcessInfo = (PPROCESSINFO)SystemInformation;
- pPrevProcessInfo = pProcessInfo;
- while(true)
- {
- if(pProcessInfo != NULL && pProcessInfo->dwProcessID == dwSelfProcessID)
- {
- if(pProcessInfo->dwOffset == 0)
- pPrevProcessInfo->dwOffset = 0;
- else
- pPrevProcessInfo->dwOffset = pPrevProcessInfo->dwOffset + pProcessInfo->dwOffset;
- break;
- }
- if(pProcessInfo->dwOffset == 0)
- break;
- pPrevProcessInfo = pProcessInfo;
- pProcessInfo = (PPROCESSINFO)((byte*)pProcessInfo + pProcessInfo->dwOffset);
- }
- }
- }
- __except(EXCEPTION_EXECUTE_HANDLER)
- {
- /*/ 发生异常,但是不必做任何事
- ::MessageBox(NULL,"Exception Occured at self-defined function :(",NULL,MB_OK | MB_ICONWARNING);
- //*/
- }
- return Result;
- }
- //---------------------------------------------------------------------------
复制代码 源代码下载:
|
评分
-
查看全部评分
上一篇: 来一本《Q版缓冲区溢出教程》下一篇: socket用户异常掉线检测
|