Windows会话登录流程

Windows 结构图

Windows系统核心结构和组件

以上截图清晰的表现了Windows的主要结构,使我们对系统的构成有个大概的认识,下面介绍一下Windows会话登录大致流程:

1、内核模式的系统线程初始化Windows执行体和内核,最后阶段Smss(会话管理)进程。

2、Smss负责完成一系列操作,如打开额外页面文件,创建系统环境变量等,并将Csrss.exe(子系统进程)和Winlogon启动,Winlogon进程依次创建其他系统进程。

3、Smss的主线程负责监视Csrss和winlogon,一旦Csrss和Winlogon非正常终止,Smss让系统崩溃。

4、Smss等待加载子系统的请求、调试事件,以及创建新的终端服务器会话。

5、当Smss接到创建会话的请求时,调用NtSetSystemInformation,建立内核模式的会话数据结构;调用内存管理器函数MmSessionCreate,建立会话虚拟地址空间【包含会话中的换页内存池,Win32子系统的内核模式部分Win32k.sys等】,然后Smss为该会话创建Winlogon和Csrss实例。

6、Winlogon登录进程处理交互式用户的登录和注销。当安全注意序列SAS组合键被按下,Winlogon会接到用户登录请求。

【Winlogon在用户登录、注销、截取键盘SAS时是活动的,它是负责处理这些交互工作的进程】

7、登录过程的身份识别和认证是在GINA.dll中实现的【开发人员可以提供自己的GINA DLL实现其他的身份识别和认证机制】。

8、用户名和密码捕捉到后,被送到本地安全认证服务器进程lsass.exe进行认证。lsass.exe检查口令是否符合存储在活动目录或者SAM中的口令信息。

9、认证完成后,lsass调用安全引用监视器中的函数NtCreateToken生成一个访问令牌对象,其包含了当前用户的安全轮廓。之后,winlogon利用此访问令牌来创建用户会话中的初始进程,此初始进程保存在注册表【HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon】下Userinit中。

10、Userinit执行该用户环境中的一些初始化工作(比如运行登录脚本、应用组策略),然后再注册表中查找Shell值,并创建进程来运行外壳程序Explorer.exe。

至此会话创建完成。

特别标注:

此文所有内容均来自《深入解析WINDOWS操作系统》(第四版)。

Windows会话登录流程

时间: 2024-08-29 03:36:43

Windows会话登录流程的相关文章

SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧

VanDyke CRT 和 VanDyke SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件.二者不同的是SecureCRT支持SSH(SSH1和SSH2). 1 #!/usr/bin/perl 2 3 use strict; 4 use warnings; 5 use 5.01; 6 7 8 9 sub license { 10 print "\n". 11 "License:\n\n". 12 &qu

微信小程序--登录流程梳理

前言 微信小程序凡是需要记录用户信息都需要登录,但是也有几种不同的登录方式,但是在小程序部分的登录流程是一样的.之前就朦朦胧胧地用之前项目的逻辑改改直接用了,这个新项目要用就又结合官方文档重新梳理了下,并记录一下,好记性不如烂笔头嘛,哈哈. 几种登录流程设计 利用OpenId 创建新用户 这种方式我的理解大体上就是一种静默登录,获取用户信息之后解密用户信息并通过OpenId直接创建新用户 利用Unionid 创建新用户 这种方式的特点是可以利用Unionid实现多个小程序.公众号.已有登录体系的

在Horizon Workspace中配置Windows单点登录-进阶篇

在上一篇基础篇里面,简单介绍了在Horizon Workspace 1.8中如何配置Windows单点登录.在这篇博客中,会继续介绍一些针对大规模虚机或者虚拟桌面部署的配置方式.这些配置方式可以保证用模板部署出来的虚机或虚拟桌面在Workspace服务器端配置完成的情况下,不再需要用户进行手动配置就能实现HorizonWorkspace的单点登录. 1. 在模板机组策略中配置IE浏览器的设置 通过在模板虚拟机上的管理控制台中设置相应的策略,可以使后续使用模板机克隆出来的虚拟机自动使用Window

Windows远程登录Linux

本文以Ubuntu Kylin1404为例,说明如何通过Windows远程登录Linux. 首先,要确保Ubuntu上SSH服务执行正常.默认情况下,Ubuntu已装有SSHclient.比方输入ssh localhost时,终端会提示无法建立连接,或请输入password.这说明已安装有sshclient.为了开启服务.必须自己在终端中输入sudo apt-get install openssh-server来安装服务端. 安装完毕后.默认已开启了ssh服务. 在Windows系统中.假设选取

登录流程-1

登录流程-1 (服务器是一个账号然后可以选择多个区,类似lol,其实就是把服务器列表发给客户端,账号就一个数据库,然后不同的服务器部署在不同的服务器上就是ip不同) e_msg_c_as_register_req e_msg_c_as_login_req 返回服务器列表,注意客户端得到的服务器列表的id数组,数据有相应id对于的ip地址,而不是真正的ip数组 e_msg_c_as_enter_area_req 进入某个选区,这个过程服务器有点复杂,首先AS产生token发给GS,GS保存toke

设置Windows默认登录方式为智能卡登录

在做完公司内部的Windows安全策略提升后,使用USB-KEY智能卡实现公司内部所有业务系统以及个人电脑的登录,并全面取消用户名.密码登录方式.在某些VDI场景中,也经常会使用USB-KEY智能卡用来实现虚拟桌面的安全验证,此时用户登录时,通过StoreFront网页认证后,打开虚拟桌面,总会出现默认登录方式为用户名.密码方式,我们必须要点及Windows登录窗口的切换用户才可以选择智能卡,然后输入PIN码进行登录,对于某些IT水平不高的用户有时会带来诸多困扰. 下面方法介绍如何通过注册表修改

看看如何解决“SQL Server只能使用Windows身份登录,不能使用sa等Sql server身份进行登录”的问题

今天安装Sql Server之后,出现SQL Server只能使用Windows身份登录,不能使用sa等Sql server身份进行登录的问题是由于sql server只设置了Windows身份验证,没有设置sa登录,修改登录方式.在网上查了一下,找到了这篇文章,解决了问题,为了方便以后使用,所以把它转载了过来,以供大家需要的朋友查看. 如果你在装sql2008的时候,没有设置混合登录模式,而你偏偏又要通过sql server的模式来访问sql2008,那这篇文章适合你: 截图来说明问题,看图说

用户登录流程详解 +volley(StringRequest)

在实习期间由于要求使用volley,所以第一次开始接触volley,从一开始的迷茫陌生,到疯狂的查找各种资料,通过在项目中用到的实际问题,我想做一些总结,所以写了这篇文章.下面我将介绍我理解的用户登录的一套详细流程,涉及到volley请求以及json数据的解析. 登录流程的总结:首先通过EditText获取到用户名和密码,然后再执行登录请求 LoginToServer()里面发送用户名和密码,服务器返回给我json数据(如果用到Oauth 认证这里返回的json数据就应该是Token的一套东西,

有关WINDOWS XP登录密码的几种方法

网上关于破解WINDOWS XP登录密码的几种方法很多,但许多根本不行.我现在总结自己试过几种,这几种方法其实均比较菜的,但可行的.WINDOWS XP登录是由SAM 文件管理的,总体来说“山姆大叔”是比较难搞定的,所以网上许多方法不行的原因吧.上次在网上看到关于一篇关于SAM 文件的文章,写得不错,但没能收藏起来.反正有不少人在研究这个.我想就是有了破解的方法,高手们也不一定全公布吧,这是由于大家不难知道的原因——安全,他们不便公布!如果很轻易就破了的话,那微软一定要打这个补丁的,那他们的成果