- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
创建SvcHost.exe调用的服务原理与实践.doc
创建SvcHost.exe调用的服务原理与实践~教育资源库
1.多个服务共享一个Svchost.exe进程利与弊
s又把很多服务做成共享方式,由svchost.exe启动。oteProcedureCall)服务进程,另外一个则是由很多服务共享的一个svchost.exe。而在s的一个趋势。这样做在一定程度上减少了系统资源的消耗,不过也带来一定的不稳定因素,因为任何一个共享进程的服务因为错误退出进程就会导致整个进程中的所有服务都退出。另外就是有一点安全隐患,首先要介绍一下svchost.exe的实现机制。
2.Svchost原理
Svchost本身只是作为服务宿主,并不实现任何服务功能,需要Svchost启动的服务以动态链接库形式实现,在安装这些服务时,把服务的可执行程序指向svchost,启动这些服务时由svchost调用相应服务的动态链接库来启动服务。
那么svchost如何知道某一服务是由哪个动态链接库负责呢?这不是由服务的可执行程序路径中的参数部分提供的,而是服务在注册表中的参数设置的,注册表中服务下边有一个Parameters子键其中的ServiceDll表明该服务由哪个动态链接库负责。并且所有这些服务动态链接库都必须要导出一个ServiceMain()函数,用来处理服务任务。
例如rpcss(RemoteProcedureCall)在注册表中的位置是HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs,它的参数子键Parameters里有这样一项:
ServiceDll=REG_EXPAND_SZ:%SystemRoot%system32rpcss.dll
当启动rpcss服务时,svchost就会调用rpcss.dll,并且执行其ServiceMain()函数执行具体服务。
既然这些服务是使用共享进程方式由svchost启动的,为什么系统中会有多个svchost进程呢?ms把这些服务分为几组,同组服务共享一个svchost进程,不同组服务使用多个svchost进程,组的区别是由服务的可执行程序后边的参数决定的。
例如rpcss在注册表中HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs有这样一项:
ImagePath=REG_EXPAND_SZ:%SystemRoot%system32svchost-krpcss
因此rpcss就属于rpcss组,这在服务管理控制台也可以看到。
svchost的所有组和组内的所有服务都在注册表的如下位置:HKEY_LOCAL_MACHINESOFTicrosoftain()函数中接收的参数是ANSI还是Unicode?我们是否需要调用RegisterServiceCtrlHandler和StartServiceCtrlDispatcher来注册服务控制及调度函数?
这些问题要通过查看svchost代码获得。下边的代码是andLine()对命令行进行分析,获得要启动的服务组,然后调用SvcHostOptions()查询该服务组的选项和服务组的所有服务,并使用一个数据结构svcTable来保存这些服务及其服务的DLL,然后调用PrepareSvcTable()函数创建SERVICE_TABLE_ENTRY结构,把所有处理函数SERVICE_MAIN_FUNCTION指向自己的一个函数FuncServiceMain(),最后调用APIStartServiceCtrlDispatcher()注册这些服务的调度函数。
;===============================MainFuncion===========================================
.text:010010B8 publicstart
.text:010010B8start proear
.text:010010B8 push esi
.text:010010B9 push edi
.text:010010BA push offsetsub_1001EBA;lpTopLevelExceptionFilter
.text:010010BF xor edi,edi
.text:0100112E test edi,edi
.text jz ExitProgram
.text push edi
12
您可能关注的文档
- 全脑开发新概念-第1.doc
- 全语言教育提升宝宝语言智能.doc
- 全面分析防火墙及防火墙的渗透.doc
- 全面安排突出重点做好南水北调西线规划.doc
- 全面解析数据库中游标的使用方法.doc
- 全麻气管插管期间依托咪酯或丙泊酚对心率变异性的影响.doc
- 公共行政体系结构的哲学解读-第1.doc
- 公共选择视域中的私营企业主政治参与.doc
- 公关人30岁前如何进行职业规划.doc
- 公务员__现实表现材料.doc
- 2024年秋新人教版一年级上册数学教学课件 5 6~10的认识和加减法 第7课时 8和9的组成.pptx
- 2024年秋季学期新人教版数学一年级上册课件 第2单元 6~10的认识和家、减法 1 6~9的认识 第2课时 比大小、第几.pptx
- 2024秋新沪科版数学七年级上册课件 2.2.2 去(添)括号 第2课时 添括号.pptx
- (考点速记)2025年湖南省政府工作报告.pdf
- 【划重点】2025年1月时事政治考点汇总.pdf
- 考点速记 求是《以中国式现代化全面推进强国建设、民族复兴伟业》.pdf
- 2025年2月时政考点速记.pdf
- 教师类【适用小初高】22.pptx
- 2024秋新人教版英语七年级上册课件 Starter Unit 3 Section B(Project2a—2c).pptx
- 2024年新北师大版一年级上册数学课件 4.9 10以内数加与减 做个减法表.pptx
最近下载
- 古代画中的仕女图10幅.pdf VIP
- 高校教师岗前培训题库高等教育学.pdf VIP
- 2024年新高考全国Ⅰ卷数学试卷试题真题答案详解(精校打印).docx VIP
- 苏科版九年级上册物理课件 二、电路连接的基本方式 2节 电路连接的基本方式.pptx VIP
- T_CCTAS 157-2024 陆路交通基础设施隧道智能设计数字化技术规范.docx
- 中心静脉导管并发症处理.pptx VIP
- 52个奥数解题方法.pdf VIP
- 2024年新人教版英语三年级上册课件 Unit 4 Part A 第1课时.pptx VIP
- 监测设备、报警仪器和辐射防护用品登记表.docx VIP
- 22rum猜想想要读写快还是存储省又三选二.pdf VIP
文档评论(0)