6月 042006
 

安全防范去伪存真 详细分析Svchost.exe进程

  在2003年8月“冲击波”病毒横行的时候有一种说法就是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_MACHINESoftwareMicrosoftWindows NTCurrentVersionSvchost”,如图1所示。图1中每个键值表示一个独立的Svchost.exe组。

Image Attachment: svchost-1.gif (2006-6-4 01:20, 24.43 K)


图一

  微软还为我们提供了一种察看系统正在运行在Svchost.exe列表中的服务的方法。以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist /svc。系统列出如图2所示的服务列表。图2中红框包围起来的区域就是Svchost.exe启动的服务列表。如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。

Image Attachment: svchost-2.gif (2006-6-4 01:20, 19.6 K)

 
图二

  如果你怀疑计算机有可能被病毒感染,Svchost.exe的服务出现异常的话通过搜索Svchost.exe文件就可以发现异常情况。一般只会找到一个在:“C:WindowsSystem32”目录下的Svchost.exe程序。如果你在其他目录下发现Svchost.exe程序的话,那很可能就是中毒了。

   还有一种确认Svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。

   上面简单的介绍了Svchost.exe进程的相关情况。总而言之,Svchost.exe是一个系统的核心进程,并不是病毒进程。但由于Svchost.exe进程的特殊性,所以病毒也会千方百计的入侵Svchost.exe。通过察看Svchost.exe进程的执行路径可以确认是否中毒。

 回复

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>