进程识别(关于守护进程的作用用)

天极传媒:天极网全国分站
您现在的位置: &&
如何识别非法进程与手工杀毒
电脑报 14:41
  简单地说,进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。进程又分为和用户进程。系统进程主要用于完成的功能,而、等程序的进程就是用户进程。  进程的重要性体现在可以通过观察它,来判断系统中到底运行了哪些程序,以及判断系统中是否入驻了非法程序。正确地分析进程能够帮助我们在杀毒软件不起作用时,手动除掉病毒或。  t望进程  如何知道系统中目前有哪些进程?在Windows98/Me/2000/XP/2003中,按下“Ctrl+Alt+Delete”组合键就可以直接查看进程,或打开“Windows 任务管理器”的“进程”选项来查看进程。通常来说,系统常见的进程有winlogon.exe,services.exe,explorer.exe,shost.exe等。要熟悉进程,首先就要熟悉最常见的系统进程,这样当发现其它奇怪的进程名(如HELLO,GETPASSWORD,WINDOWSSERVICE等等)时就方便判断了。
(作者:责任编辑:原野)
欢迎在新浪微博上关注我们
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
笔记本手机数码家电进程创建与管理(16)
#include &stdafx.h&
#include &windows.h&
#include &stdio.h&
#include &tlhelp32.h&
#include &Psapi.h&
BOOL DosPathToNtPath(LPTSTR pszDosPath, LPTSTR pszNtPath) &
& & TCHAR & & & & & szDriveStr[500]; &
& & TCHAR & & & & & szDrive[3]; &
& & TCHAR & & & & & szDevName[100]; &
& & INT & & & & & & cchDevN &
& & INT & & & & & & &
& & //检查参数 &
& & if(!pszDosPath || !pszNtPath ) &
& & & & return FALSE; &
& & //获取本地磁盘字符串 &
& & if(GetLogicalDriveStrings(sizeof(szDriveStr), szDriveStr)) &//&szDriveStr包含各个分区c:\\, d:\\, e:\\, f:\\&
& & & & for(i = 0; szDriveStr[i]; i += 4) &
& & & & { &
& & & & & & if(!lstrcmpi(&(szDriveStr[i]), _T(&A:\\&)) || !lstrcmpi(&(szDriveStr[i]), _T(&B:\\&))) &
& & & & & & & & &
& & & & & & szDrive[0] = szDriveStr[i]; &
& & & & & & szDrive[1] = szDriveStr[i + 1]; &
& & & & & & szDrive[2] = '\0'; &
& & & & & & if(!QueryDosDevice(szDrive, szDevName, 100))//查询 Dos 设备,并给szDevName赋值为:\\Device\\HarddiskVolume2
& & & & & & & & return FALSE; &
& & & & & & cchDevName = lstrlen(szDevName); &
& & & & & & if(_tcsnicmp(pszDosPath, szDevName, cchDevName) == 0)//命中 &
& & & & & & { &
& & & & & & & & lstrcpy(pszNtPath, szDrive);//复制驱动器 &
& & & & & & & & lstrcat(pszNtPath, pszDosPath + cchDevName);//复制路径 &
& & & & & & & & return TRUE; &
& & & & & & } & & & & & &&
& & & & } &
& & lstrcpy(pszNtPath, pszDosPath); &
& & return FALSE; &
BOOL GetProcessFullPath(DWORD dwPID, TCHAR pszFullPath[MAX_PATH]) &
& & TCHAR & & & szImagePath[MAX_PATH]; &
& & HANDLE & & &hP &
& & if(!pszFullPath) &
& & & & return FALSE; &
& & pszFullPath[0] = '\0'; &
& & hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, dwPID); &
& & if(!hProcess) &
& & & & return FALSE; &
& & if(!GetProcessImageFileName(hProcess, szImagePath, MAX_PATH)) &//获取进程路径名(包含设备地址)\\Device\\HarddiskVolume2\\Program files\\**
& & & & CloseHandle(hProcess); &
& & & & return FALSE; &
& & if(!DosPathToNtPath(szImagePath, pszFullPath)) &//将路径名从包含设备地址的字符串中提取出来
& & & & CloseHandle(hProcess); &
& & & & return FALSE; &
& & CloseHandle(hProcess); &
& & return TRUE; &
int _tmain(int argc, _TCHAR* argv[])
int num=0;
TCHAR exe_name[20]=_T(&notepad++.exe&);//要查询的进程名
TCHAR pszFullPath[MAX_PATH];
PROCESSENTRY32 pe32;//用于存放进程信息的结构体
HANDLE hProcessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//创建进程快照
pe32.dwSize=sizeof(pe32);
if(hProcessSnap==INVALID_HANDLE_VALUE)
printf(&CreateToolhelp32Snapshot failed!\n&);
return -1;
BOOL bMore=::Process32First(hProcessSnap,&pe32);//获取第一个进程信息到pe32结构体中
while(bMore)
printf(&name is: %ls\n&,pe32.szExeFile);
printf(&num is: %d\n&,num);
printf(&ID is: %d\n&,pe32.th32ProcessID);
if(!_tcscmp(exe_name,pe32.szExeFile))//发现要寻找的进程后结束查找
printf(&find the file you want: %ls\n&,pe32.szExeFile);
num++;
bMore=::Process32Next(hProcessSnap,&pe32);
if(!_tcscmp(exe_name,pe32.szExeFile))
if(GetProcessFullPath(pe32.th32ProcessID, pszFullPath))//根据进程ID获取进程路径名
printf(&the path of the process is: %ls\n\n&,pszFullPath);
HANDLE hprocess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID);
if(hprocess!=NULL)
::TerminateProcess(hprocess,0);//关闭进程
printf(&I have close the process you choose!\n&);
::CloseHandle(hprocess);
CloseHandle(hProcessSnap);
getchar();//让程序有输入,在结束
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:34732次
积分:1172
积分:1172
排名:千里之外
原创:78篇
转载:50篇
(1)(2)(1)(4)(8)(1)(22)(13)(12)(3)(2)(7)(10)(7)(12)(12)(13)

我要回帖

更多关于 守护进程的作用 的文章

 

随机推荐