大家对windows操作系统一定不陌生但你是否注意到系统中svchostexe这个文件呢?细心的朋友会发现windows中存在多个svchost进程(通过ctrl+alt+del键打开任务管理器 这里的进程标签中就可看到了)为什么会这样呢?下面就来揭开它神秘的面纱
一初步了解
在基于nt内核的windows操作系统家族中不同版本的 windows系统存在不同数量的svchost进程用户使用 任务管理器可查看其进程数目一般来说win有两个 svchost进程winxp中则有四个或四个以上的svchost进程而 win server中则更多这些svchost进程提供很多系统服务如 rpcss服务(remote procedure call)dmserver服务(logical disk manager)dhcp服务 (dhcp client)等
如果要了解每个svchost进程到底提供了多少系统服务 可以在win的命令提示符窗口中输入tlist s命令来查 看该命令是win support tools提供的在winxp则使用tasklist /svc命令
二深入研究
windows系统进程分为独立进程和共享进程两种 svchostexe文件存在于%systemroot% system目录下它属于共享进程随着windows系统服务不 断增多为了节省系统资源微软把很多服务做成共享方式 交由 svchostexe进程来启动但svchost进程只作为服务宿主并 不能实现任何服务功能那这些服务是如何实现的呢?
专家介绍这些系统服务是以动态链接库(dll)形式实现的 它们把可执行程序指向 svchost由svchost调用相应服务的动态链接库来启动服务 那svchost又怎么知道某个系统服务该调用哪个动态链接库呢? 这是通过系统服务在注册表中设置的参数来实现
三实例应用
以windows xp为例点击开始/运行输入 servicesmsc命令弹出服务对话框然后打开remote procedure call属性对话框可以看到rpcss服务的可执行文件的路径为 c:windowssystemsvchost k rpcss这说明rpcss服务是依靠svchost调用rpcss参数 来实现的而参数的内容则是存放在系统注册表中的
在运行对话框中输入regeditexe后回车打开注 册表编辑器找到[hkey_local_machine systemcurrentcontrolsetservicesrpcss]项找到类型为 reg_expand_sz的键magepath其键值为% systemroot%systemsvchost k rpcss(这就是在服务窗口中看到的服务启动命令)另 外在parameters子项中有个名为servicedll的键其值为% systemroot%systemrpcssdll其中rpcssdll就是 rpcss服务要使用的动态链接库文件这样 svchost进程通过读取rpcss服务注册表信息就能启动该 服务了
四解惑疑点
因为svchost进程启动各种服务所以病毒木马也想尽办法来利用它企图利用它的特性来迷惑用户达到感染 入侵破坏的目的(如沖击波变种病毒wwelchiaworm)但windows系统存在多个svchost进程是很正常的在受感 染的机器中到底哪个是病毒进程呢?这里仅举一例来说明
假设windows xp系统被wwelchiaworm感染了正常的svchost文件存 在于c:windowssystem目录下八哥网()专家介绍发现该文件出现在其 他目录下就要小心了wwelchiaworm病毒存在于 c:windowssystemwins目录中因此使用进程管理器查看 svchost进程的执行文件路径就很容易发现系统是否感染了病毒
系统自带的任务管理器不能够查看进程的路径可以使 用第三方进程管理软件如windows优化大师进程管理器 通过这些工具就可很容易地查看到所有的svchost进程的执行文 件路径一旦发现其执行路径为不平常的位置就应该马上进行检测和处理