创建SvcHost.exe调用的服务原理与实践
日期:2007年10月29日 作者: 查看:[大字体 中字体 小字体]-
转载:CSDN.Net
1. 多个服务共享一个Svchost.exe进程利与弊
windows 系统服务分为独立进程和共享进程两种,在windows NT时只有服务器管理器SCM(Services.exe)有多个共享服务,随着系统内置服务的增加,在windows 2000中ms又把很多服务做成共享方式,由svchost.exe启动。windows 2000一般有2个svchost进程,一个是RPCss(Remote Procedure Call)服务进程,另外一个则是由很多服务共享的一个svchost.exe。而在windows XP中,则一般有4个以上的svchost.exe服务进程,windows 2003 server中则更多,可以看出把更多的系统内置服务以共享进程方式由svchost启动是ms的一个趋势。这样做在一定程度上减少了系统资源的消耗,不过也带来一定的不稳定因素,因为任何一个共享进程的服务因为错误退出进程就会导致整个进程中的所有服务都退出。另外就是有一点安全隐患,首先要介绍一下svchost.exe的实现机制。
2. Svchost原理
Svchost本身只是作为服务宿主,并不实现任何服务功能,需要Svchost启动的服务以动态链接库形式实现,在安装这些服务时,把服务的可执行程序指向svchost,启动这些服务时由svchost调用相应服务的动态链接库来启动服务。
那么svchost如何知道某一服务是由哪个动态链接库负责呢?这不是由服务的可执行程序路径中的参数部分提供的,而是服务在注册表中的参数设置的,注册表中服务下边有一个Parameters子键其中的ServiceDll表明该服务由哪个动态链接库负责。并且所有这些服务动态链接库都必须要导出一个ServiceMain()函数,用来处理服务任务。
例如rpcss(Remote Procedure Call)在注册表中的位置是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs,它的参数子键Parameters里有这样一项:
"ServiceDll"=REG_EXPAND_SZ:"%SystemRoot%\system32\rpcss.dll"
当启动rpcss服务时,svchost就会调用rpcss.dll,并且执行其ServiceMain()函数执行具体服务。
既然这些服务是使用共享进程方式由svchost启动的,为什么系统中会有多个svchost进程呢?ms把这些服务分为几组,同组服务共享一个svchost进程,不同组服务使用多个svchost进程,组的区别是由服务的可执行程序后边的参数决定的。
例如rpcss在注册表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs 有这样一项:
"ImagePath"=REG_EXPAND_SZ:"%SystemRoot%\system32\svchost -k rpcss"
因此rpcss就属于rpcss组,这在服务管理控制台也可以看到。
svchost的所有组和组内的所有服务都在注册表的如下位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost,例如windows 2000共有4组rpcss、netsvcs、wugroup、BITSgroup,其中最多的就是netsvcs=REG_MULTI_SZ:EventSystem.Ias.Iprip.Irmon.Netman.Nwsapagent.Rasauto.Rasman.RemoteAccess.SENS.Sharedaccess.Tapisrv.Ntmssvc.wzcsvc..
在启动一个svchost.exe负责的服务时,服务管理器如果遇到可执行程序内容ImagePath已经存在于服务管理器的映象库中,就不在启动第2个进程svchost,而是直接启动服务。这样就实现了多个服务共享一个svchost进程。 - [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] 下一页
-
- 创建SvcHost.exe调用的服务原理与实践 相关文章:
- ·如何免费创建QQ群
- ·奋斗十年(南下打工仔的创业回忆))
- ·解决ActiveX部件不能创建对象的有效方法
- ·创建一个纯CSS的水平导航条
- ·为DataGrid创建自定义列控件
- ·如何创建自己的网站
- ·创建SvcHost.exe调用的服务原理与实践
- ·《FM2006》国外玩家的球员推荐+原创心得体会(后防篇)
- ·在Linux 和FireWire上创建自己的RAC 集群
- ·创新名言集锦
- 创建SvcHost.exe调用的服务原理与实践 相关软件
- ·创世纪:企业王国
- ·实创启动工具光盘 V4.0
- ·信长之野望11天下创世
- ·乐创MJP Player V2.2
- ·新思创OA协同网络办公自动化系统 V2006.1
- ·经典创意绿色主题宽屏壁纸集一(含3种尺寸)
- ·音乐创作大师 DX V1.04 汉化版
- ·日本Surfers ParadiseCG创作比赛2004作品壁纸集一
- ·第一创业集成版 V5.56
- ·虚拟DOS引导系统创建工具 V4.7
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:Raid详解
下一篇:香港十大电影公司
精品推荐
热点TOP10
特别推荐
- ·IP网络路由技术简介
- ·七大常见的集成网卡
- ·SOFTICE安装及使用
- ·强烈推举系统管理员收藏的命令
- ·破解电信星空极速最简单办法
- ·创建SvcHost.exe调用的服务原理与实践
- ·高手支招 解决网站本机无法访问故障
- ·用WINDOWS自带软件实现缩小图片尺寸
- ·NIS网络信息系统简介
- ·ADSL常见问题与优化浅谈
- ·Cisco路由技术基础知识详解
- ·基于NT/2000建立安全WEB站点的解决方案
- ·上网操作1000问
- ·SQL语言入门教程
- ·精解网络中IP地址与域名含义
- ·配置Win+Apache+PHP+MySQL+Tcomcat
- ·风险评估应用技术和工具初探
- ·恶意攻击者 DoS攻击软件连连看
- ·穿梭于防火墙下的黑马DBB后门程序
- ·DEBUG命令大全
