您的位置:首页 > 其它

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

2010-03-21 22:50 375 查看

大家对
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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: