全面认识Svchost.exe进程

很多朋友对Svchost.exe进程都不太了解,有时在任务管理器中一旦看到有多个该进程(图1中有6个),就以为自己的电脑中了病毒或木马,其实并非如此!正常情况下,windows中可以有多个Svchost.exe进程同时运行,例如Windows 2000至少有2个Svchost进程,Windows XP中有4个以上,Windows 2003中则有更多,所以当你看到多个Svchost进程时,未必就是病毒!  
高手 全面认识Svchost.exe进程

   

  Svchost.exe进程是干什么的? 

  Svchost.exe文件存在于“%system root%/system32”(例如C:/Windows/system32)目录下,它是Windows NT核心的重要进程(Windows 9X没有该进程),专门为系统启动各种服务的。例如Svchost.exe调用rpcss.dll文件,就会启动rpcss服务(remote procedure call)。 

  Svchost.exe实际上是一个服务宿主,它本身并不能给用户提供任何服务,但是可以用来运行动态链接库DLL文件,从而启动对应的服务。Svchost.exe进程可以同时启动多个服务。

  Svchost是如何启动系统服务的? 

  由于系统服务都是以动态链接库(DLL)形式实现的,它们把可执行程序指向Svchost,因此Svchost只要调用某个动态链接库,即可启动对应的服务。那么Svchost启动某服务时,又是如何知道应该调用哪个动态链接库?这是由于系统服务在注册表中都设置了相关参数,因此Svchost通过读取某服务在注册表中的信息,即可知道应该调用哪个动态链接库,从而启动该服务。 

  下面我们以Svchost启动helpsvc(Help and Support)服务为例,介绍其启动服务的方法。在Windows XP中点击“开始” “运行”,输入“services.msc”命令,弹出服务对话框,然后双击打开“Help and Support”服务属性对话框,可以看到helpsvc服务的可执行文件的路径为“C:/WINDOWS/System32/svchost.exe -k netsvcs” (如图2),说明helpsvc服务是依靠SVCHOST调用“netsvcs”参数来实现的,而参数的内容则是存放在系统注册表中的。 

高手 全面认识Svchost.exe进程

  

  在运行对话框中输入“regedit.exe”后回车,打开注册表编辑器,找到[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/helpsvc]项,找到类型为“REG_EXPAND_SZ”的键“magePath”,其键值为“%SystemRoot%/System32/svchost.exe -k netsvcs”(这就是在服务窗口中看到的服务启动命令),另外在“Parameters”子项中有个名为“ServiceDll”的键,其值为“%WINDIR%/PCHealth/HelpCtr/Binaries/pchsvc.dll”,其中“pchsvc.dll”就是helpsvc服务要使用的动态链接库文件。这样SVCHOST进程通过读取“helpsvc”服务注册表信息,就能启动该服务了。   

  Svchost到底启动了哪些服务? 

  如果你想了解每个SVCHOST进程当前到底提供了哪些系统服务,可以在命令提示符下输入命令来查看。例如在Windows XP中,打开“命令提示符”,键入tasklist /svc命令查看;在Windows 2000中,则输入“Tlist -S”命令来查看。 

  如果你在Windows XP中,想得到所有进程的详细信息,可以打开“命令提示符”,键入  tasklist /svc>abc.txt 命令,于是在当前目录中,将会生成一个abc.txt文件,其内容就是当前正在运行的所有进程情况,例如进程名、PID号、该进程启动了哪些服务。

如何发现Svchost进程有问题? 

  由于Svchost进程可以启动各种服务,因此病毒、木马也经常伪装成系统的DLL文件,使Svchost调用它,从而进入内存中运行、感染和控制电脑。 

  建议你使用“Windows优化大师”进程管理器(可以到《个人电脑》的下载频道http://download.pcpro.com.cn的“系统工具”中去下载),查看所有Svchost进程的执行文件路径(如图3),正常的Svchost文件应该存在于“c:/Windows/system32”目录下,如果你发现其执行路径在其他目录下,就有可能染上了病毒或木马了,应该马上进行检测和处理。 

   

高手 全面认识Svchost.exe进程

   

  Svchost进程杀不掉怎么办? 

  如果有些Svchost进程,你在任务管理器中无法关闭之,可以使用ntsd命令来杀掉它,方法如下: 

  首先需要了解欲杀的Svchost进程,其PID是多少?在Windows XP下,按Ctrl+Alt+Del打开任务管理器,点击“进程选项卡” “查看” “选择列”,在弹出的窗口中(图4),勾选“PID(进程标识符)”,然后回到任务管理器中,即可看见PID了(例如要杀的Svchost进程,其PID是844)。 

   

高手 全面认识Svchost.exe进程

   

  接下来关闭该进程。点击“开始” “程序” “附件” “命令提示符”,在命令提示符下,输入命令ntsd -c q -p 844即可杀掉Svchost进程(PID是844)。 

  小提示:除了System、SMSS.EXE和CSRSS.EXE这三个进程,ntsd命令可以杀掉任何一个系统进程。从Windows 2000开始,微软就提供了ntsd工具,该命令执行后,可让你获得系统的debug权,因此能够用来关闭大部分的系统进程,如果你遇到无法关闭的进程,就可以使用该命令,其杀进程的命令格式为:ntsd -c q –p XXX 

  以上XXX为欲杀进程的PID; 

  ntsd –p XXX 表示在调试器中打开某进程(PID为XXX); 

  而-c q参数则表示退出调试器。由于调试器关闭之后,它打开的进程会随调试器一起退出,因此ntsd命令能够关闭进程

 
参考资源链接:[识别与清除Svchost.exe:系统进程与病毒混淆详解](https://wenku.csdn.net/doc/6497f7c0f8e98f67e0aaf82e?utm_source=wenku_answer2doc_content) 要准确区分和识别Windows系统中的Svchost.exe进程,首先需要了解Svchost.exe的基本功能和服务宿主的角色。每个Svchost.exe实例都承载着一系列系统服务,而这些服务Windows操作系统运行不可或缺的一部分。通过任务管理器中的详细信息选项卡,你可以看到Svchost.exe关联的服务列表,这有助于你判断进程是否正常。 要进一步识别潜在的病毒伪装,可以关注以下几点: 1. 进程数量:通常一个系统会有多个Svchost.exe进程,但它们负责不同的服务集合。如果发现异常数量的Svchost.exe进程,这可能是病毒的表现。 2. 系统表现:如果系统出现不稳定或特定服务无法正常工作,同时伴随Svchost.exe进程的异常行为,如无法结束或持续高资源占用,应警惕病毒伪装。 3. 文件属性和路径:合法的Svchost.exe通常位于%systemroot%\System32目录下,你可以检查其路径和文件属性,与已知的合法文件进行比较。 在处理疑似病毒伪装的Svchost.exe时,请遵循以下步骤: 1. 断开网络连接,防止病毒扩散。 2. 重启电脑进入安全模式,此时大多数非系统关键服务不会启动。 3. 使用可靠的杀毒软件进行全盘扫描,并按照软件建议进行处理。 4. 如果有必要,可以手动停止或删除可疑的Svchost.exe进程,但务必先确保它是伪装的病毒。 为了更好地掌握这些知识和技能,建议阅读《识别与清除Svchost.exe:系统进程与病毒混淆详解》一书。它详细介绍了Svchost.exe的功能解析、真假进程判断方法、病毒清除步骤以及相关的教育指导,是学习识别和处理Svchost.exe相关问题的宝贵资源。通过系统地学习,你将能有效提高自己的安全防护能力,避免因误操作带来的系统风险。 参考资源链接:[识别与清除Svchost.exe:系统进程与病毒混淆详解](https://wenku.csdn.net/doc/6497f7c0f8e98f67e0aaf82e?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值