Win32子系统(csrss.exe,win32k.sys相关知识总结)

Win32子系统

Win32子系统是Windows操作系统必须的一部分,伴随这Windows启动时运行,它包含:

  1. win32子系统进程 csrss.exe
  2. win32子系统驱动 win32k.sys
  3. win32子系统DLL kernel32.dll,user32.dll,advapi32.dll,gdi32.dll
  4. 设备相关的显示和打印驱动程序等。

Windows的启动过程

windows操作系统在启动时会进行一系列的初始化操作:

  1. 自检阶段
  2. 初始化启动阶段
  3. Boot加载阶段
  4. 检测和配置硬件阶段
  5. 内核加载阶段
  6. 启动会话管理器smss.exe,它是Windows创建的第一个用户进程。

smss.exe运行后,会加载和初始化win32k.sys,然后紧接着调用win32k.sys的DriverEntry,然后启动Win32子系统进程csrss.exe和登录进程WinLogon.exe

csrss.exe

csrss.exe(Client/Server Runtime Server Subsystem,即客户端/服务器运行时子系统),负责维护Windows子系统的日常事务,为子系统的各个进程提供服务。例如维护进程和线程、管理控制台窗口、管理DOS程序虚拟机(VDM)进程等。

win32k.sys

win32k.sys是内核模块但是不用于处理I/O请求,主要是为应用层提供服务。实现窗口管理(收集、分发消息,控制窗口显示)和图形设备接口(各种图形绘制、文本输出)。

win32k.sys主要是user32.dll和gdi32.dll的内核实现。
ntoskrnl.exe主要是kernel32.dll的内核实现。
user32.dll、gdi32.dll和kernel32.dll中的API通过ntdll.dll实现过渡,最终调用的都是win32k.sys(Shadow SSDT)和ntoskrnl.exe(SSDT)中的系统服务。

SSDT(System Service Descriptor Table,系统服务描述表),由ntoskrnl.exe导出(x64下不导出),在内核中的名称是KeServiceDescriptorTable。在代码中声明一下即可使用。

extern PSYSTEM_SERVICE_DESCRIPTOR_TABLE	KeServiceDescriptorTable;
typedef struct _SYSTEM_SERVICE_DESCRIPTOR_TABLE
{
	PVOID		ServiceTableBase;			//SSDT表的基地址
	PVOID		ServiceCounterTableBase;
	ULONG_PTR	NumberOfServices;			//SSDT表中服务函数的个数
	PVOID		ParameterTableBase;
}SYSTEM_SERVICE_DESCRIPTOR_TABLE, *PSYSTEM_SERVICE_DESCRIPTOR_TABLE;

Shadow SSDT,在内核中的名称是KeServiceDescriptorTableShadow,不过它是未导出的,不能在自己的模块中导入和引用。

kernel32.dll

kernel32.dll包含如下的API:

  • 进程/线程管理
  • 文件操作(创建、打开、读写、搜索等)
  • 内存管理(Local开头、Global开头、Heap开头)
  • 调试(Debug开头)等

user32.dll

user32.dll是用户界面相关的,包含窗口管理、消息处理、用户输入的API,如EndDialog()、BeginPaint()、SetWindowPos()、MessageBox()、EnumWindows()等。

gdi32.dll

gdi32.dll是GDI图形用户界面相关的,包含各种图形文字绘制的API,如BltBlt()、CreateDC()、CreateCompatibleDC()、SetBitmapBits()、SetTextColor()、TextOut()等。

advapi32.dll

advapi32.dll包含如下的API:

  • 数据加密(Crypt开头)
  • 用户和账号管理(Lsa开头)
  • 注册表操作(Reg开头)
  • WMI(Wmi开头)
  • 终端服务(Wts开头)等

其他用户进程

  1. WinLogon.exe,登录进程,负责用户登录和安全有关的事务。它启动后,会创建 lsass.exe 和Services.exe。Windows XP的文件保护功能(Windows File Protection,简称WFP)也是在这个进程中实现的。
  2. lsass.exe,Local Security Authority Subsystem Service,本地安全和认证进程,负责用户身份验证。
  3. services.exe,服务管理进程,负责启动和管理系统服务程序。系统服务程序是按照NT系统服务规范编写的exe程序,通常没有用户界面,只在后台运行。例如:SvcHost.exe是一个通用的服务宿主程序。
  4. Shell,默认是explorer.exe,负责显示开始菜单、任务栏和桌面图标等。

其他环境子系统

Windows操作系统的环境子系统有三个:

  1. POSIX子系统,Portable Operating System Interface based on UniX,用于运行符合POSIX标准的程序。其核心文件是psxss.exe和psxdll.dll。
  2. OS/2子系统,支持16位的OS/2程序,其核心文件是os2.exe、os2srv.exe和os2ss.exe。
  3. Win32子系统(上面介绍的)
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在这个系列课程中,来自微软的权威技术专家将向您解释Windows操作系统的内部工作原理,从系统架构的大局观出发,逐步展示进程、线程、安全机制、内存管理和存储管理等子系统的工作方式。通过对底层原理的揭示,使您更进一步的理解Windows上各类程序的工作方式和如何进行错误诊断及性能优化。 本次课程的内容编排得到了国内知名技术作家,《Windows Internals》一书的中文译者,潘爱民先生的大力支持,同时TechNet也邀请到了众多微软一线技术专家进行讲解。这是一个为IT专业人员量身定做的Windows内部知识课程,在介绍原理的同时,也紧密地围绕实际案例和常见的故障进行分析点评。这是一个系统的学习Windows底层工作机制的好机会,课程内容深入浅出,精彩纷呈,绝对不容错过。 深入研究Windows内部原理系列之一:Windows的昨天、今天和明天 讲师信息:潘爱民 2007年01月25日 14:00-15:30 Level: 300 著名技术作家、微软亚洲研究院研究员潘爱民老师将在这次课程中跟听众分享Windows的发展历程和技术精萃,描绘操作系统的体系架构、Vista的内核变更以及今后版本Windows的发展趋势。 深入研究Windows内部原理系列之二:Windows体系结构-从操作系统的角度 讲师信息:张银奎 2007年01月26日 14:00-15:30 Level: 400 操作系统是计算机系统的灵魂和管理中心,也是软件系统中最复杂的部分。本讲座将以生动的讲解和丰富的演示带您领略Windows操作系统的核心架构和主要组件,包括HAL、内核、执行体、系统进程(IDLE、SMSS.EXEWinLogon.EXE)和Windows子系统CSRSS.EXEWIN32K.SYS以及子系统DLL)等。并讨论中断管理、对象管理、和异常分发等系统机制和实现这些机制的基本数据结构。 深入研究Windows内部原理系列之三:Windows体系结构-从应用程序的角度 讲师信息:曾震宇 2007年01月29日 14:00-15:30 Level: 400 从服务器软件到Office办公应用,从联网游戏到即时消息,不管这些应用的复杂程度如何,他们都是一个个在操作系统控制和管理之下的可执行程序。本次课程邀请微软全球技术中心专家级工程师,为各位讲解一个程序是如何经历从启动、分配资源、运行、结束这一连串的过程,并且介绍其中的重要概念和排错诊断技巧。 深入研究Windows内部原理系列之四:Windows操作系统中的重要基本概念 讲师信息:高宇 2007年01月30日 14:00-15:30 Level: 400 进程、线程、资源分配、内存管理、Win32 API、服务、安全,这些是工作中常常提及但是又无法深入理解的神秘概念。在这次课程中,讲师将介绍Windows中最常见与最重要的一些基本概念. 使大家能够顺利地参与到本系列之后的讨论中去。 深入研究Windows内部原理系列之五:Windows Sysinternals工具集介绍 讲师信息:彭爱华 2007年01月31日 14:00-15:30 Level: 400 Sysinternals Suite(Windows Sysinternals工具集)包含一系列免费的系统工具,其中有大名鼎鼎的Process Explorer、FileMon、RegMon等(在Windows Vista下,FileMon和RegMon则被Process Monitor所代替),如果把系统管理员比喻成战士的话,那么Sysinternals Suite就是我们手中的良兵利器。熟悉和掌握这些工具,并且对Windows的体系有一定的了解,将大幅度的提高日常的诊断和排错能力。本课程将以任务驱动的模式,介绍几个经典的应用案例,来介绍Sysinternals Suite的强大功能。 深入研究Windows内部原理系列之六:Vista新特性底层揭秘 讲师信息:彭爱华 2007年02月01日 14:00-15:30 Level: 400 Windows Vista绝非仅仅是具有诸如3D切换、毛玻璃等炫目的界面效果,花钱购买了Windows Vista,而仅仅为了使用其界面效果,难免有点“买椟还珠”的感觉。实际上Windows Vista值得称道的是它具有很多全新的安全特性,例如用户帐户控制、IE保护模式、服务隔离和Windows资源保护等等。有了这些全新的安全特性,我们就可以在相当的程度上摆脱恶意软件的滋扰。Windows之父Jim Allchin曾经说过不要满足于只知道How-to、小技巧之类的知识,而是应该深入底层了解其内部原理。只有了解了这些安全特性的内在原理,才

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值