解析Svchost.exe和Explorer.exe两大系统进程( 二 )


如果要了解每个Svchost进程到底提供了多少系统服务,可以在Win 2000的命令提示符窗口中输入“tlist -s”命令来查看,该命令是Win 2000 support tools提供的 。在Win XP则使用“tasklist /svc”命令 。
Svchost中可以包含多个服务
Windows系统进程分为独立进程和共享进程两种,“Svchost.exe”文件存在于“%systemroot% system32”目录下,它属于共享进程 。随着Windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由 Svchost.exe进程来启动 。但Svchost进程只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务 。那这些服务是如何实现的呢?
原来这些系统服务是以动态链接库(dll)形式实现的,它们把可执行程序指向 Svchost,由Svchost调用相应服务的动态链接库来启动服务 。那Svchost又怎么知道某个系统服务该调用哪个动态链接库呢?这是通过系统服务在注册表中设置的参数来实现 。
从启动参数中可见服务是靠Svchost来启动的 。
因为Svchost进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的(如冲击波变种病毒“w32.welchia.worm”) 。但Windows系统存在多个Svchost进程是很正常的,在受感染的机器中到底哪个是病毒进程呢?这里仅举一例来说明 。
【解析Svchost.exe和Explorer.exe两大系统进程】假设Windows XP系统被“w32.welchia.worm”感染了 。正常的Svchost文件存在于“c:Windowssystem32”目录下,如果发现该文件出现在其他目录下就要小心了 。“w32.welchia.worm”病毒存在于“c:Windowssystem32Win s”目录中,因此使用进程管理器查看Svchost进程的执行文件路径就很容易发现系统是否感染了病毒 。Windows系统自带的任务管理器不能够查看进程的路径,可以使用第三方进程管理软件,如“Windows优化大师”进程管理器,通过这些工具就可很容易地查看到所有的Svchost进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理 。

推荐阅读