在以前的这个时候“冲击波”病毒横行的时候有一种说法就是Svchost.exe都是病毒,一看到就要删除。这种说法让电脑用户人心惶惶,因为每个使用
Windows XP系统的用户在按照文章中介绍的检查有无Svchost.exe的方法都可以找到几个Svchost.exe进程。
真的是像网络上流传的那样Svchost.exe是病毒吗?
我们先看看微软是怎样描述Svchost.exe的。在微软知识库314056中对Svchost.exe有如下描述:Svchost.exe
是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
其实Svchost.exe是Windows XP系统的一个核心进程。Svchost.exe不单单只出现在Windows
XP中,在使用NT内核的Windows系统中都会有Svchost.exe的存在。一般在Windows
2000中Svchost.exe进程的数目为2个,而在Windows
XP中Svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个Svchost.exe不用那么担心。
Svchost.exe到底是做什么用的呢?
首先我们要了解一点那就是Windows系统的中的进程分为:独立进程和共享进程这两种。由于Windows系统中的服务越来越多,为了节约有限的系统资源微软把很多的系统服务做成了共享模式。那Svchost.exe在这中间是担任怎样一个角色呢?
Svchost.exe的工作就是作为这些服务的宿主,即由Svchost.exe来启动这些服务。Svchost.exe只是负责为这些服务提供启动的条件,其自身并不能实现任何服务的功能,也不能为用户提供任何服务。Svchost.exe通过为这些系统服务调用动态链接库(DLL)的方式来启动系统服务。
那Svchost.exe是病毒这种说法是任何产生的呢?
因为Svchost.exe可以作为服务的宿主来启动服务,所以病毒、木马的编写者也挖空心思的要利用Svchost.exe的这个特性来迷惑用户达到入侵、破坏计算机的目的。
如何才能辨别哪些是正常的Svchost.exe进程,而哪些是病毒进程呢?
Svchost.exe的键值是在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
NT\CurrentVersion\Svchost”,如图1所示。图1中每个键值表示一个独立的Svchost.exe组。
微软还为我们提供了一种察看系统正在运行在Svchost.exe列表中的服务的方法。以Windows
XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist
/svc。系统列出如图2所示的服务列表。图2中红框包围起来的区域就是Svchost.exe启动的服务列表。如果使用的是Windows
2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。
如果你怀疑计算机有可能被病毒感染,Svchost.exe的服务出现异常的话通过搜索Svchost.exe文件就可以发现异常情况。一般只会找到一个在:“C:\Windows\System32”目录下的Svchost.exe程序。如果你在其他目录下发现Svchost.exe程序的话,那很可能就是中毒了。
还有一种确认Svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。
上面简单的介绍了Svchost.exe进程的相关情况。总而言之,Svchost.exe是一个系统的核心进程,并不是病毒进程。但由于Svchost.exe进程的特殊性,所以病毒也会千方百计的入侵Svchost.exe。通过察看Svchost.exe进程的执行路径可以确认是否中毒。