Windows服务管理与启动机制解析
1. 会话0与交互式服务
在Windows系统中,只有系统拥有的进程和Windows服务会在会话0中运行,其他登录会话(包括控制台用户的会话)则在不同的会话中运行。因此,会话0中进程显示的窗口对用户是不可见的。这种额外的边界有助于防止“破碎攻击”,即低权限应用程序向同一窗口站上可见的窗口发送窗口消息,以利用拥有该窗口的高权限进程中的漏洞,从而在高权限进程中执行代码。
过去,Windows包含交互式服务检测服务(UI0Detect),当服务在会话0的WinSta0窗口站的主桌面上显示窗口时,会通知用户。用户可以切换到会话0的窗口站,使交互式服务正常运行。出于安全考虑,该功能首先被禁用,自Windows 10 2018年4月更新(RS4)起,已被完全移除。
2. 服务控制管理器(SCM)
- SCM的基本信息 :SCM的可执行文件是
%SystemRoot%\System32\Services.exe,它作为Windows控制台程序运行。Wininit进程在系统启动早期启动SCM。 - SCM的初始化 :SCM的启动函数
SvcCtrlMain会进行一系列初始化操作,包括设置进程安全缓解措施、未处理异常过滤器,创建知名SIDs的内存表示。然后创建两个同步事件:SvcctrlStartEvent_A3752DX和SC_AutoStartComplete,初始状态均为未发出信号。前者在SCM完
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



