解读SVCHOST.EXE 病毒or系统进程?

大家对 windows 操作系统一定不陌生,但你是否注意到系统中 “svchost.exe” 这个文件呢 ? 细心的朋友会发现 windows 中存在多个 “svchost” 进程 ( 通过 “ctrl+alt+del” 键打开任务管理器, 这里的 进程 标签中就可看到了 ) ,为什么会这样呢 ? 下面就来揭开它神秘的面纱。

  一、初步了解

  在基于 nt 内核的 windows 操作系统家族中,不同版本的 windows 系统,存在不同数量的 “svchost” 进程,用户使用 任务管理器 可查看其进程数目。一般来说, win2000 有两个 svchost 进程, winxp 中则有四个或四个以上的 svchost 进程,而 win2003 server 中则更多。这些 svchost 进程提供很多系统服务,如: rpcss 服务 (remote procedure call) dmserver 服务 (logical disk manager) dhcp 服务 (dhcp client) 等。

  如果要了解每个 svchost 进程到底提供了多少系统服务, 可以在 win2000 的命令提示符窗口中输入 “tlist -s” 命令来查 看,该命令是 win2000 support tools 提供的。在 winxp 则使用 “tasklist /svc” 命令

  二、深入研究

   windows 系统进程分为独立进程和共享进程两种, “svchost.exe” 文件存在于 “%systemroot% system32” 目录下,它属于共享进程。随着 windows 系统服务不 断增多,为了节省系统资源,微软把很多服务做成共享方式, 交由 svchost.exe 进程来启动。但 svchost 进程只作为服务宿主,并 不能实现任何服务功能,那这些服务是如何实现的呢 ?

  专家介绍,这些系统服务是以动态链接库 (dll) 形式实现的 ,它们把可执行程序指向 svchost ,由 svchost 调用相应服务的动态链接库来启动服务。 svchost 又怎么知道某个系统服务该调用哪个动态链接库呢 ? 这是通过系统服务在注册表中设置的参数来实现。

  三、实例应用

   以 windows xp 为例,点击 开始 ”/“ 运行 ,输入 “services.msc” 命令,弹出服务对话框,然后打开 “remote procedure call” 属性对话框,可以看到 rpcss 服务的可执行文件的路径为 “c:windowssystem32svchost -k rpcss” ,这说明 rpcss 服务是依靠 svchost 调用 “rpcss” 参数 来实现的,而参数的内容则是存放在系统注册表中的。

  在运行对话框中输入 “regedit.exe” 后回车,打开注 册表编辑器,找到 [hkey_local_machine systemcurrentcontrolsetservicesrpcss] 项,找到类型为 “reg_expand_sz” 的键 “magepath” ,其键值为 “% systemroot%system32svchost -k rpcss”( 这就是在服务窗口中看到的服务启动命令 ) ,另 外在 “parameters” 子项中有个名为 “servicedll” 的键,其值为 “% systemroot%system32rpcss.dll” ,其中 “rpcss.dll” 就是 rpcss 服务要使用的动态链接库文件。这样 svchost 进程通过读取 “rpcss” 服务注册表信息,就能启动该 服务了。

  四、解惑疑点

  因为 svchost 进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、 入侵、破坏的目的 ( 如冲击波变种病毒 “w32.welchia.worm”) 。但 windows 系统存在多个 svchost 进程是很正常的,在受感 染的机器中到底哪个是病毒进程呢 ? 这里仅举一例来说明。

  假设 windows xp 系统被 “w32.welchia.worm” 感染了。正常的 svchost 文件存 在于 “c:windowssystem32” 目录下,八哥网 (http://www.it8g.com ) 专家介绍发现该文件出现在其 他目录下就要小心了。 “w32.welchia.worm” 病毒存在于 “c:windowssystem32wins” 目录中,因此使用进程管理器查看 svchost 进程的执行文件路径就很容易发现系统是否感染了病毒

  系统自带的任务管理器不能够查看进程的路径,可以使用第三方进程管理软件,如 “windows 优化大师 进程管理器, 通过这些工具就可很容易地查看到所有的 svchost 进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理。

 

 

推荐两篇文章:

RPC 编程

http://www.ibm.com/developerworks/cn/aix/library/au-rpc_programming/

了解 TCP 系统调用序列

http://www.ibm.com/developerworks/cn/aix/library/au-tcpsystemcalls/

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章