[ft=,3,]svchost.exe是NT核心系统非常重要
![](/icons/82608de.gif)
文件
![](/icons/82608dou.gif)
对于Win2000/XP来说
![](/icons/82608dou.gif)
不可或缺
![](/icons/82608dou2.gif)
这些svchost进程提供很多系统服务
![](/icons/82608dou.gif)
如:rpcss服务(remote procedure call)、dmserver服务(logical disk manager)、dhcp服务(dhcp client)等等
[ft=,3,] 如果要了解每个svchost进程到底提供了多少系统服务
![](/icons/82608dou.gif)
可以在WinXP
![](/icons/82608de.gif)
命令提示符窗口中输入“tasklist /svc”命令来查看
[ft=,3,] 工作原理
[ft=,3,]
![](/icons/82608yi.gif)
般来说
![](/icons/82608dou.gif)
Windows系统进程分为独立进程和共享进程两种
![](/icons/82608dou2.gif)
svchost.exe文件存在于%systemroot%system32目录下
![](/icons/82608dou.gif)
属于共享进程
[ft=,3,] 随着Windows系统服务不断增多
![](/icons/82608dou.gif)
为了节省系统资源
![](/icons/82608dou.gif)
微软把很多服务都做成共享方式
![](/icons/82608dou.gif)
交由svchost进程来启动
![](/icons/82608dou2.gif)
但svchost进程只作为服务宿主
![](/icons/82608dou.gif)
并不能实现任何服务功能
![](/icons/82608dou.gif)
即它只能提供条件让其他服务在这里被启动
![](/icons/82608dou.gif)
而它自己却不能给用户提供任何服务
[ft=,3,] 这些服务是如何实现
![](/icons/82608de.gif)
呢?原来这些系统服务是以动态链接库(dll)形式实现
![](/icons/82608de.gif)
![](/icons/82608dou.gif)
它们把可执行
![](/icons/82608chengxu.gif)
指向svchost
![](/icons/82608dou.gif)
由svchost
![](/icons/82608diaoyong.gif)
相应服务
![](/icons/82608de.gif)
动态链接库来启动服务
[ft=,3,] 那svchost又如何知道某个系统服务该
![](/icons/82608diaoyong.gif)
哪个动态链接库呢?这是通过系统服务在注册表中设置
![](/icons/82608de.gif)
参数来实现
![](/icons/82608de.gif)
[ft=,3,] 具体例子
[ft=,3,] 下面以Remote Registry服务为例
![](/icons/82608dou.gif)
来看看svchost进程是如何
![](/icons/82608diaoyong.gif)
DLL文件
![](/icons/82608de.gif)
![](/icons/82608dou2.gif)
在WinXP中
![](/icons/82608dou.gif)
点击“开始→运行”
![](/icons/82608dou.gif)
输入“services.msc”命令
![](/icons/82608dou.gif)
会弹出服务对话框
![](/icons/82608dou.gif)
然后打开“Remote Registry”属性对话框
![](/icons/82608dou.gif)
可以看到Remote Registry服务
![](/icons/82608de.gif)
可执行文件
![](/icons/82608de.gif)
路径为“C:Windows
![](/icons/82608System.gif)
32svchost -k LocalService”(图1)
![](/icons/82608dou.gif)
这介绍说明Remote Registry服务是依靠svchost
![](/icons/82608diaoyong.gif)
“LocalService”参数来实现
![](/icons/82608de.gif)
![](/icons/82608dou.gif)
而参数
![](/icons/82608de.gif)
内容则是存放在系统注册表中
![](/icons/82608de.gif)
[ft=,3,] 在运行对话框中输入“regedit.exe”后回车
![](/icons/82608dou.gif)
打开注册表编辑器
![](/icons/82608dou.gif)
找到“HKEY_LOCAL_MACHINE
![](/icons/82608System.gif)
currentcontrol
![](/icons/82608set.gif)
servicesRemote Registry”项
![](/icons/82608dou.gif)
再找到类型为“reg_expand_sz”
![](/icons/82608de.gif)
“Imagepath”项
![](/icons/82608dou.gif)
其键值为“%systemroot%system32svchost -k LocalService”(这就是在服务窗口中看到
![](/icons/82608de.gif)
服务启动命令)
![](/icons/82608dou.gif)
另外在“parameters”子项中有个名为“ServiceDll”
![](/icons/82608de.gif)
键
![](/icons/82608dou.gif)
其值为“% systemroot%system32 egsvc.dll”
![](/icons/82608dou.gif)
其中“regsvc.dll”就是Remote Registry服务要使用
![](/icons/82608de.gif)
动态链接库文件
![](/icons/82608dou2.gif)
这样svchost进程通过读取“Remote Registry”服务注册表信息
![](/icons/82608dou.gif)
就能启动该服务了
[ft=,3,] 也正是
![](/icons/82608yinwei.gif)
svchost
![](/icons/82608de.gif)
重要性
![](/icons/82608dou.gif)
所以病毒、木马也想尽办法来利用它
![](/icons/82608dou.gif)
企图利用它
![](/icons/82608de.gif)
特性来迷惑用户
![](/icons/82608dou.gif)
达到感染、入侵、破坏
![](/icons/82608de.gif)
目
![](/icons/82608de.gif)
![](/icons/82608dou2.gif)
那么应该如何判断到底哪个是病毒进程呢?正常
![](/icons/82608de.gif)
svchost.exe文件应该存在于“C:Windowssystem32”目录下
![](/icons/82608dou.gif)
如果发现该文件出现在其他目录下就要小心了
[ft=,3,] 提示:svchost.exe文件
![](/icons/82608de.gif)
![](/icons/82608diaoyong.gif)
路径可以通过“系统信息→软件Software环境→正在运行任务”来查看.