svchost.exe进程( 二 )


[编辑本段]解惑
因为svchost进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的(如冲击波变种病毒“w32.welchia.worm) 。但windows系统存在多个svchost进程是很正常的,在受感染的机器中到底哪个是病毒进程呢?这里仅举一例来说明 。
假设windowsxp系统被“w32.welchia.worm感染了 。正常的svchost文件存在于“c:windowssystem32目录下,如果发现该文件出现在其他目录下就要小心了 。“w32.welchia.worm病毒存在于“c:windowssystem32wins目录中,因此使用进程管理器查看svchost进程的执行文件路径就很容易发现系统是否感染了病毒 。windows系统自带的任务管理器不能够查看进程的路径,可以使用第三方进程管理软件,如“windows优化大师进程管理器,通过这些工具就可很容易地查看到所有的svchost进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理 。
Svchost.exe说明解疑对Svchost的困惑
---------------
Svchost.exe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名 。Svchost.exe文件定位在系统的%systemroot%system32文件夹下 。在启动的时候,Svchost.exe检查注册表中的位置(HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvcHost)来构建需要加载的服务列表 。这就会使多个Svchost.exe在同一时间运行 。每个Svchost.exe的回话期间都包含一组服务,以至于单独的服务必须依靠Svchost.exe怎样和在那里启动 。这样就更加容易控制和查找错误 。
Svchost.exe 组是用下面的注册表值来识别 。
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionSvchost
每个在这个键下的值代表一个独立的Svchost组,并且当你正在看活动的进程时,它显示作为一个单独的例子 。每个键值都是REG_MULTI_SZ类型的值而且包括运行在Svchost组内的服务 。每个Svchost组都包含一个或多个从注册表值中选取的服务名,这个服务的参数值包含了一个ServiceDLL值 。
HKEY_LOCAL_MACHINESystemCurrentControlSetServices
简单的说没有这个RPC服务,机器几乎就上不了网了 。很多应用服务都是依赖于这个RPC接口的,如果发现这个进程占了太多的CPU资源,直接把系统的RPC服务禁用了会是一场灾难:因为连恢复这个界面的系统服务设置界面都无法使用了 。恢复的方法需要使用注册表编辑器,找到 HKEY_LOCAL_MACHINE >> SYSTEM >> CurrentControlSet >> Services >> RpcSs, 右侧找到Start属性,把它的值改为2再重启即可
造成svchost占系统CPU 100%的原因并非svchost服务本身:以上的情况是由于Windows Update服务下载/安装失败而导致更新服务反复重试造成的 。而Windows的自动更新也是依赖于svchost服务的一个后台应用,从而表现为svchost.exe负载极高 。常发生这类问题的机器一般是上网条件(尤其是去国外网站)不稳定的机器,比如家里的父母的机器,往往在安装机器几个月以后不定期发生,每个月的第二个星期是高发期:因为最近几年MS很有规律的在每个月的第二个星期发布补丁程序) 。上面的解决方法并不能保证不重发作,但是为了svchost文件而每隔几个月重装一次操作系统还是太浪费时间了 。
为了能看到正在运行在Svchost列表中的服务 。
开始-运行-敲入cmd
然后再敲入 tlist -s (tlist 应该是win2k工具箱里的东东)
Tlist 显示一个活动进程的列表 。开关 -s 显示在每个进程中的活动服务列表 。如果想知道更多的关于进程的信息,可以敲 tlist pid 。
Tlist 显示Svchost.exe运行的两个例子 。
0 System Process
8 System
【svchost.exe进程】132 smss.exe

推荐阅读