Windows系统Svchost进程揭秘

在基于NT内核的Windows操作系统家族中,Svchost.exe是一个非常重要的进程。很多病毒、木马驻留系统与这个进程密切相关,因此深入了解该进程是非常有必要的。本文主要介绍Svchost进程的功能,以及与该进程相关的知识。

Svchost进程概述

微软对“Svchost进程”的定义是:Svchost.exe是从动态链接库(DLL)中运行的服务的通用主机进程名称。Svchost.exe文件位于“%SystemRoot%\System32”文件夹中。当系统启动时,Svchost将检查注册表中的服务部分,以构建需要加载的服务列表。Svchost的多个实例可以同时运行。每个Svchost会话可以包含一组服务,以便根据Svchost的启动方式和位置的不同运行不同的服务,这样可以更好地进行控制且更加便于调试。

Svchost组是由注册表[HKEY_LOCAL_MACHINE\ Software\Microsoft\Windows NT\CurrentVersion\Svchost]项来识别的。在这个注册表项下的每个值都代表单独的Svchost组,并在我们查看活动进程时作为单独的实例显示。这里的键值均为REG_MULTI_SZ类型的值,并且包含该Svchost组里运行的服务名称(如图1)。


图1 注册表中的Svchost

实际上,Svchost只是作为服务的宿主,本身并不实现什么功能。如果需要使用Svchost来启动某个DLL形式实现的服务,该DLL的载体Loader指向Svchost,在启动服务的时候由Svchost调用该服务的DLL来实现启动的目的。使用Svchost启动某个服务的DLL文件是由注册表中的参数来决定的,在需要启动服务的注册表项下都有一个“Parameters”子项,其中的“ServiceDll”键值表明该服务由哪个DLL文件负责,并且这个DLL文件必须导出一个ServiceMain()函数,为处理服务任务提供支持。

提示:不同版本的Windows系统,存在不同数量的Svchost进程。一般来说,Windows 2000有两个Svchost进程,而Windows XP则有四个或四个以上的Svchost进程。

Svchost进程实例讲解

要想查看在Svchost中运行服务的列表,可以在Windows XP命令提示符窗口中输入“Tasklist /svc”命令后,回车执行(如果使用的是Windows 2000,可用Support Tools提供的Tlist工具查看,命令为“Tlist -s”)。Tasklist命令显示活动进程的列表,/svc命令开关指定显示每个进程中活动服务的列表。从图中可以看到,Svchost进程启动很多系统服务,如:RpcSs(Remote Procedure Call)、Dhcp(DHCP Client)、Netman(Network Connections)服务等等(如图2)。


图2 Svchost的服务列表

这里我们以RpcSs服务为例,来具体了解一下Svchost进程与服务的关系。运行Regedit,打开注册表编辑器,依次展开[HKEY_LOCAL_MACHINE\SYSTEM\

CurrentControlSet\Services\RpcSs ]分支,在“Parameters”子项中有个名为“ServiceDll”的键,其值为“%SystemRoot%\system32\rpcss.dll”。这表示系统启动RpcSs服务时,调用“%SystemRoot%\system32”目录下的Rpcss.dll动态链接库文件。

接下来,从控制面板中依次双击“管理工具→服务”,打开服务控制台。在右侧窗格中双击“Remote Procedure Call(RPC)”服务项,打开其属性对话框,可以看到RpcSs服务的可执行文件的路径为“C:\Windows\system32\svchost -k rpcss”,这说明RpcSs服务是依靠Svchost启动的,“-k rpcss”表示此服务包含在Svchost的Rpcss服务组中。


图3 Svchost进程中的模块信息

时间: 2024-10-31 17:28:14

Windows系统Svchost进程揭秘的相关文章

阿里云操作运维Windows系统有哪些问题

Windows2008 32位 64位自助正版激活教程 外网访问ECS服务器端口不通的排查方法 mysql的binlog太大太多占用大量磁盘 ECS服务器每3天出现一次CPU 100%的情况分析 ECS Windows系统服务器查看流量占用情况的方法 ping网站有丢包 ECS Windows Server 2008 MetaFile设置占用内存限制 ECS Windows2003与2008防火墙例外添加方法 ECS服务器 TCP网络端口不通分析诊断 ECS IO hang或IO慢导致系统内部数

【windows】windows系统下,在任务管理器的进程选项卡中查看PID/任务管理器怎么查看PID

PID,就是windows上的进程ID,是一个进程的唯一标识值.   那今天启动JDK跑起来一个项目之后,想要在任务管理器中查看这个JDK所在进程的PID但是看不到. 怎么解决?   1.我在任务管理器的服务中查看上面PID 但是排序之后最大值才是7000多     2.进程选项卡中比较完整的进程,但是没有PID   3.点击上面的  查看  按钮,选择列    4.勾选PID 可显示 5.成功看到进程PID  

Windows Docker第一时间揭秘

Windows Docker第一时间揭秘 [编者的话]这是盆盆谈微软两会(Build/Iginte)系列之一.文章引用孙建波老师关于Linux内核的6大命名空间隔离,看Windows Docker如何实现类似隔离,同时又有哪些不同.文章素材取自Build和Ignite大会视频,但主要展示盆盆自己的分析和研究,还望大家指正为谢. 在咱们微信群里听一位兄弟提到,Docker能将DevOps(意即开发和运维)整合在一起,暗合王阳明先生的"知行合一"之教,这真是一种有趣的说法. 话说从头,盆盆

windows 系统 鲜为人知的宝藏

window All Users 这里记录的是Window的用户以及这些用户个人设定的开始菜单及桌面等信息.   Command 在这个目录下有着许多的DOS的常用命令,例如debug, format 等.可别小看这些老廉颇呀,在许多关键时刻还得靠他们哟.      Config 用于存放Windows中硬件配制文件.     Cursors 这是存放Windows光标的目录.     Desktop 除了"我的电脑"."我的文档"这几个系统图标外其它由程序和文档建

xp系统svchost.exe应用程序错误怎么解决

  xp系统svchost.exe应用程序错误怎么解决        为什么会出现svchost.exe应用程序错误的提示?让我们一起通过文章来看看吧. svchost.exe是Windows操作系统中的一个系统程序,它对系统的正常运行起到了重要的作用. svchost.exe文件存在于X:Windows/system32目录下,是Windows 系统中核心的重要进程 ,它可用来运行动态链接库DLL文件,从而启动对应的服务. 如果遇到了svchost.exe应用程序错误的问题有可能是病毒所引起的

SVCHOST进程CPU占用高的解决方法

VCHOST是Windows中最神秘的进程,很多新用户对它很不解.它是Windows的服务宿主,很多系统自带的服务通过它来运行.简单的比喻,它相当于系统服务的马甲.但是SVCHOST有时候CPU占用会非常高,如何看透它的马甲找出真凶呢?我们通过任务管理器来找出它的元凶. STEP01进入"任务管理器":在任务栏的空白处点击右键,选择"任务管理器"以打开任务管理器→进入"进程"选项卡.也可以按下Ctrl+Shift+ESC组合键打开任务管理器.Wi

微软终于解决了XP的SVCHOST进程问题

  SVCHOST进程占用CPU过高的问题已经存在很多年了 ,早在2007年微软就曾发布补丁修复这个问题,但是当时是针对Windows XP SP2,而同样的问题也出现在了SP3上.有用户反馈称,在全新安装(clean install)Windows XP SP3后,SVCHOST进程会将CPU占用率拉高到100%. 在11月份和12月初,微软为XP发布了两次更新,试图通过删除大量IE6和IE7中的作废更新来解决SVCHOST问题.不幸的是,它们都未能奏效.本周,微软为Windows XP等系统

Windows优化大师Wopti进程管理大师怎么使用

  在使用电脑的过程中,我们可能会遇到操作错误或者有些进程被木马破坏.有时,黑客木马程会在系统中驻留一些进程,而一些杀毒软件由于无法主动关闭这些进程进行清除,会要求使用者重新启动计算机后进行杀毒(也就是不能带毒杀毒),遇到这种情况,使用者也可以通过Wopti 进程管理大师手动关闭这些可疑进程后进行清除.今天,小编就来跟大家分享Windows优化大师Wopti进程管理大师怎么使用. 在Windows2000/XP/2003中,系统自带的进程管理工具(以及普通的进程管理软件)无法区别相同进程名称的进

阿里云使用Windows系统通用配置有哪些问题

安装和使用FTP/ Windows2003 硬盘分区和格式化For Windows 2008 服务器被肉鸡了怎么办? 使用FileZilla配置FTP站点 Docker私有镜像库 Windows系统云服务器使用导航 ECS Docker实践文档 windows环境mysql授权外网访问 网站遇到502错误 ECS Windows Server 2008安装VPN后本地接入成功但无法解析域名 ECS Windows 显示"500 - 内部服务器"处理方法 ECS 设置域名301重定向 W