幻彩特务
|
分享:
▲
▼
以下资讯是从 PCZONE 转贴过来,希望对各位有所帮助..^_^
------------------------------------------------------------
svchos.exe是 NT 核心系统的非常重要的程序,对于2000、XP 来说,不可或缺。很多病毒、木马也会使用它。所以,深入了解这个程式,是玩电脑的必修课之一。
大家对 Windows作业系统一定不陌生,但你是否注意到系统中“svchost.exe”这个文件呢?细心的朋友会发现 Windows中存在多个 “svchost”程序(通过“ctrl+alt+del”键打开工作管理员,这里的“处理程序”标签中就可看到了),为什么会这样呢?下面就来揭开它神秘的面纱。
发现 ==== 在基于 NT 核心的 Windows作业系统家族中,不同版本的 Windows系统,存在不同数量的“svchost”程序,用户使用“工作管理员”可查看其程序数目。一般来说,win2000有两个svchost程序,Windows XP中则有四个或四个以上的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”命令。
svchost中可以包含多个服务
深入 ==== windows系统程序分为独立程序和共用程序两种,“svchost.exe”文件存在于“%systemroot%\system32”目录下,它属于共用程序。随着windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共用方式,交由 svchost.exe程序来启动。但svchost程序只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务。那这些服务是如何实现的呢?
原来这些系统服务是以动态链结库(dll)形式实现的,它们把可执行程式指向 svchost,由svchost调用相应服务的动态链结库来启动服务。那svchost又怎么知道某个系统服务该调用哪个动态链结库呢?这是通过系统服务在注册表中设置的参数来实现。下面就以rpcss(remote procedure call)服务为例,进行讲解。
从启动参数中可见服务是靠svchost来启动的。
实例 ==== 以windows xp为例,点击“开始”/“执行”,输入“services.msc”命令,弹出服务对话方块,然后打开“remote procedure call”属性对话方块,可以看到rpcss服务的可执行文件的路径为“c:\windows\system32\svchost -k rpcss”,这说明rpcss服务是依靠svchost调用“rpcss”参数来实现的,而参数的内容则是存放在系统注册表中的。
在执行对话方块中输入“regedit.exe”后执行,打开注册表编辑器,找到[hkey_local_machine\ system\currentcontrolset\services\rpcss]项,找到类型为“reg_expand_sz”的键“magepath”,其键值为“%systemroot\%system32\svchost -k rpcss”(这就是在服务窗口中看到的服务启动命令),另外在“parameters”子项中有个名为“servicedll”的键,其值为“% systemroot\%system32\rpcss.dll”,其中“rpcss.dll”就是rpcss服务要使用的动态链结库文件。这样 svchost程序通过读取“rpcss”服务注册表资讯,就能启动该服务了。
解惑 ==== (关于svchost怀疑感染到病毒,可循下列方式查询)-提供给受感染网友参考... 因为svchost程序启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的(如冲击波变种病毒“w32.welchia.worm”)。但windows系统存在多个svchost程序是很正常的,在受感染的机器中到底哪个是病毒程序呢?这里仅举一例来说明。
假设windows xp系统被“w32.welchia.worm”感染了。正常的svchost文件存在于“c:\windows\system32”目录下,如果发现该文件出现在其他目录下就要小心了。“w32.welchia.worm”病毒存在于“c:\windows\system32\wins”目录中,因此使用程序管理器查看svchost程序的执行文件路径就很容易发现系统是否感染了病毒。windows系统自带的工作管理员不能够查看程序的路径,可以使用第三方程序管理软体,如“windows优化大师”程序管理器,通过这些工具就可很容易地查看到所有的svchost程序的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理。
由于篇幅的关系,不能对svchost全部功能进行详细介绍,这是一个windows中的一个特殊程序,有兴趣的可参考有关技术资料进一步去了解它。
提示:svchost.exe文件的调用路径可以通过「系统讯息→软体环境→正在运行任务」来查看
讨论 ==== 并不是启动一个相关服务就多一个svchost程序的,而是根据命令参数分组,一般是一组服务就有一个svchost程序,如TT举例的那个c:\windows\system32\svchost -k rpcss,这个属于rpcss组。
说明解疑对Svchost的困惑
Svchost.exe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhost.exe文件定位在系统的%systemroot%\system32文件夹下。在启动的时候,Svchost.exe检查注册表中的位置来构建需要加载的服务列表。这就会使多个Svchost.exe在同一时间运行。每个Svchost.exe的回话期间都包含一组服务,以至于单独的服务必须依靠Svchost.exe怎样和在那里启动。这样就更加容易控制和查找错误。 . SVCHOST\.exe 组是用下面的注册表值来识别。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost 每个在这个键下的值代表一个独立的Svchost组,并且当你正在看活动的进程时,它显示作为一个单独的例子。每个键值都是REG_MULTI_SZ类型的值而且包括运行在Svchost组内的服务。每个Svchost组都包含一个或多个从注册表值中选取的服务名,这个服务的参数值包含了一个ServiceDLL值。 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service . .
更多的信息 ====.=== 为了能看到正在运行在Svchost列表中的服务。 开始-运行-敲入cmd 然后在敲入 tlist -s (tlist 应该是win2k工具箱里的东东) Tlist 显示一个活动进程的列表。开关 -s 显示在每个进程中的活动服务列表。如果想知道更多的关于进程的信息,可以敲 tlist pid。 Tlist 显示Svchost.exe运行的两个例子。 0 System Process 8 System 132 smss.exe 160 csrss.exe Title: 180 winlogon.exe Title: NetDDE Agent 208services.exe Svcs: AppMgmt,Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,LanmanWorkst ation,LmHosts,Messenger,PlugPlay,ProtectedStorage,seclogon,TrkWks,W32Time,Wmi 220 lsass.exe Svcs: Netlogon,PolicyAgent,SamSs 404 SVCHOST\.exe Svcs: RpcSs 452 spoolsv.exe Svcs: Spooler 544 cisvc.exe Svcs: cisvc 556 SVCHOST\.exe Svcs: EventSystem,Netman,NtmsSvc,RasMan,SENS,TapiSrv 580 regsvc.exe Svcs: RemoteRegistry 596 mstask.exe Svcs: Schedule 660 snmp.exe Svcs: SNMP 728 winmgmt.exe Svcs: WinMgmt 852 cidaemon.exe Title: OleMainThreadWndName 812 explorer.exe Title: Program Manager 1032 OSA.EXE Title: Reminder 1300 cmd.exe Title: D:\WINNT5\System32\cmd.exe - tlist -s 1080 MAPISP32.EXE Title: WMS Idle 1264 rundll32.exe Title: 1000 mmc.exe Title: Device Manager 1144 tlist.exe 在这个例子中注册表设置了两个组。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost: netsvcs: Reg_Multi_SZ: EventSystem Ias Iprip Irmon Netman Nwsapagent RasautoRa sman Remoteaccess SENS Sharedaccess Tapisrv Ntmssvc rpcss :Reg_Multi_SZ: RpcSs smss.exe csrss.exe 这个是用户模式Win32子系统的一部分。csrss代表客户/服务器运行子系统而且是一个基本的子系统必须一直运行。csrss 负责控制windows,创建或者删除线程和一些16位的虚拟MS-DOS环境。
|