`

认识windows svchost -- 删除非正常服务

阅读更多

今天在win2003上碰到几个系统服务,无法停止,也无法删除,一看详情,居然调用的是svchost -k ,原来svchost也可以作系统服务。我还是想把这几个不正常的系统服务给杀掉, 一般的系统服务用sc delete 就能删除, 而这几个却不行,只好先看看svchost到底是怎么回事:

 

--------------------------------------------------------------------------------------------------------------------------------

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

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”参数来实现的,而参数的内容则是存放在系统注册表中的。

在运行对话框中输入“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进程杀不掉怎么办?

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

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

接下来关闭该进程。点击“开始”“程序”“附件”“命令提示符”,在命令提示符下,输入命令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系统服务的办法,重启电脑后就正常了。看来除了编程,操作系统的知识也要留心学习。

分享到:
评论

相关推荐

    DLL服务(svchost服务)

    svchost.exe是一个通用的主机进程,用于承载多个Windows服务,每个服务都是一个单独的DLL模块。 **svchost服务的核心概念** 1. **svchost.exe**:这是一个系统级别的进程,由Windows操作系统启动,用于承载和管理...

    svchost服务dll源码

    【svchost服务dll源码】是一个关于Windows操作系统核心服务的编程主题,主要涉及如何利用动态链接库(DLL)在svchost.exe进程中创建并运行服务。svchost.exe是Windows系统中的一个关键进程,它负责承载多个服务,以...

    一个可以由SVCHost.exe服务调用的dll模块

    总的来说,SVCHost.exe和DLL模块是Windows操作系统中的两个关键元素,它们协同工作以确保系统的正常运行和服务的高效提供。理解它们的工作原理和交互方式,有助于提升系统管理员的技术能力,也能帮助普通用户更好地...

    一个svchost服务源码

    1. **Svchost的含义**:Svchost.exe是Windows系统中一个系统进程,它的主要作用是加载并运行Windows服务。由于Windows服务为了节省内存和提高效率,常常会被合并到同一个进程中执行,这就产生了svchost。 2. **服务...

    创建SvcHost_exe调用的服务原理与实践.rar_svchost_svchost服务_创建svchost

    在Windows操作系统中,`svchost.exe`是一个非常重要的系统进程,它被设计用来承载多个Windows服务,以提高系统效率并降低内存占用。本篇文章将深入探讨`svchost.exe`的工作原理,以及如何创建利用`svchost.exe`的...

    svchost

    学习如何管理和配置Windows服务,了解哪些服务是必要的,哪些可能是不必要的或可疑的,可以帮助防止恶意软件利用svchost。 8. **安全策略**: 设置强密码,禁用不必要的共享,限制用户权限,这些都是提高系统安全...

    svchost进程分析器(可查看svchost进程中的线程)

    svchost是Windows系统中一个至关重要的服务宿主进程,它负责承载多个系统服务,以实现资源共享和减少内存占用。在Windows中,你可能会看到多个svchost进程运行,每个进程可能承载了若干个不同的系统服务。 这个分析...

    svchost启动的nt服务程序

    这个进程是系统服务宿主,它允许多个Windows服务在同一个进程中运行,以节省系统资源。 Svchost.exe并不直接执行任何服务,而是作为其他服务的容器。这些服务通常是由动态链接库(DLL)实现的。 在描述中提到了...

    利用svchost服务启动程序方法及测试代码

    1. **创建服务**:首先,我们需要创建一个Windows服务。这通常通过`CreateService` API函数完成,该函数需要提供服务名称、显示名称、服务类型(如`SERVICE_WIN32_OWN_PROCESS`)和服务的可执行文件路径。 2. **...

    替换系统svchost服务自启动

    替换Svchost共享服务模式启动,,原理是制作导出函数为ServiceMain的动态链接库文件,并在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\SvcHost\netsvcs中查找系统未安装的服务,创建服务后将...

    服务Dll注入Svchost进程

    2、注入到svchost进程 3、服务打开计算器(涉及到session,知识点) 4、线程输出时间debugview中查看 程序安装完服务,服务启动有以下方式: 1、重启电脑,使用电脑自带svhost服务组自启动服务; 2、手动执行脚本...

    SVCHOST专杀工具

    1. **扫描检测**:工具会深入系统,检查所有运行的svchost.exe进程,识别出异常的行为或者非正常的启动项,比如异常的系统服务、不常见的文件路径等。 2. **病毒查杀**:如果检测到svchost.exe进程被恶意代码感染,...

    svchost Viewer

    1. **服务宿主**:svchost.exe是Windows操作系统中的一个通用服务宿主进程,它的主要任务是承载和运行多个Windows服务,而不是每一个服务都启动一个独立的进程。这样做可以减少内存占用和提高系统性能。 2. **服务...

    一键关闭 多余svchost进程 无用svchost服务

    一键关闭 禁用 多余svchost进程 无用svchost服务 减少系统内存消耗 优化系统

    vb创建SvcHost服务,vb6用的NT系统服务操作模块,创建、删除、配置 NT服务的模块

    创建系统服务的模块,木马使用的SvcHost服务方式启动, 现在不用,共享一下,拿些积分! '=======================================================++ ' 函数名称:CreateNormalService ' 函数说明:创建一个标准...

    让你头痛的真假Svchost.exe进程详解

    Svchost.exe是Windows NT内核操作系统(包括Windows 2000/XP/2003等)中的一个关键组件,其全称是“Service Host”,即“服务宿主”。它负责加载并运行各种系统服务。具体来说: 1. **服务装在“CD机”里**:可以将...

    了解SVCHOST.exe是玩电脑的必修课之一

    这些服务包括但不限于网络服务、安全服务等,是Windows正常运行不可或缺的一部分。简单来说,SVCHOST.EXE就像一个大容器,里面装着许多小的服务,它们共同支撑着系统的稳定运行。 #### 二、SVCHOST.EXE的重要性 1....

    svchost.exe应用程序错误崩溃 原因查看和解决

    **svchost.exe** 是Windows操作系统中的一个关键进程,它属于系统服务宿主,用于承载多个Windows服务。这个进程在不同的Windows版本中扮演着不同角色,例如在Windows 2000中有两个svchost.exe进程,而在Windows XP中...

    Svchost进程分析器

    Svchost.exe 是Windows XP/Vista上最神秘的进程之一. Svchost.exe是运行动态链接库(DLLs)的服务的通用进程名. 值得信任的svchost.exe位于C:\Windows\System32, 但是很多病毒和木马也利用这个文件和进程名来进行伪装....

Global site tag (gtag.js) - Google Analytics