zoukankan      html  css  js  c++  java
  • Windows的启动过程

    这个问题和屏蔽Ctrl+Alt+Del这个问题有千丝万缕的联系,所以需要谈一谈,下面先翻译一下这篇Blog里的相关内容:

    http://blogs.technet.com/askperf/archive/2008/02/02/ws2008-startup-processes-and-delayed-automatic-start.aspx

     在Vista之前版本的Windows中,在系统启动时,会话管理器进程(Session Manager process (SMSS.EXE))会启动客户端/服务器运行时子系统(Client-Server Runtime Subsystem (CSRSS.EXE)),然后是登陆进程(WINLOGON.EXE)。Winlogon进程会接着运行本地安全判定子系统服务(Local Security Authority Subsystem Service, LSASS.EXE)和服务控制管理器(SERVICES.EXE)。用户从控制台登陆会进入会话0(Session 0),该会话由系统进程共享。这样就存在一个安全风险,如果一个写的很烂的Windows服务运行在会话0,并在交互控制台显示了一个用户界面,恶意程序可以利用发送Windows消息的方式来攻击Windows并获得系统的管理员权限。

    为了解决这个潜在的问题,Vista和2008的几个系统进程经过了重新设计。SMSS.EXE还是第一个被创建的用户态进程,不同的是SMSS.EXE会运行它自己的第二个实例来配置会话0,同样还是给系统进程使用。启动会话0的SMSS.EXE实例会启动一个CSRSS.EXE实例,在CSRSS.EXE实例退出之后再启动Windows启动程序(WININIT.EXE)。WININIT.EXE继续启动SERVICES.EXE和LSASS.EXE,以及一个新的进程——本地会话管理器(Local Session Manager (LSM.EXE)),它将会管理机器上的终端服务连接。

    在创建会话0的同时,一个控制台会话也同时被初始化。最开始的SMSS.EXE实例又创建了一个自己的新实例来配置控制台会话,就像会话0那样。SMSS.EXE的新实例会控制台会话启动了CSRSS.EXE和WINLOGON.EXE,准备用户登录。然后WINLOGON.EXE运行登陆用户界面主程序(Logon User Interface Host (LOGONUI.EXE))来显示出Windows安全屏幕来提示用户按下Ctrl+Alt+Del键登陆。

    --------------------------------------------------
    快速了解Winlogon进程。在之前版本的Windows中,WINLOGON.EXE会加载图形化验证DLL(Graphical Identification and Authentication DLL (GINA),在注册表中指定)来显示一个登陆界面来提示用户输入登陆信息。Vista和2008不再使用GINA,取而代之的是一套全新的证明信息提供者的架构(Credential Provider architecture)。WINLOGON.EXE启动LOGONUI.EXE来加载证明信息提供者(在下面的注册表项中指定:HKLM\Software\Microsoft\Windows NT\CurrentVersion\Authentication\Credential Providers),LogonUI可以同时加载多个提供者并管理显示给用户的界面。证明信息提供者可能会有一些定制的元素需要显示在登陆屏幕上。一旦用户登录信息由LOGONUI.EXE传递给WINLOGON.EXE,LOGONUI.EXE进程就退出了。
    --------------------------------------------------

    当(终端)用户尝试登陆系统的时候,最开始的SMSS.EXE实例会再次创建一个自己的新实例来配置一个新的会话(就像会话0和控制台会话那样)。这个SMSS.EXE的新实例会会新会话启动一个CSRSS.EXE进程和一个WINLOGON.EXE进程。WINLOGON.EXE启动LOGONUI.EXE来显示登陆界面(注:以上这些看起来似乎和上面重复了,不过这是对终端服务器而言的,请继续往下看)。这样似乎会导致系统中不必要的负荷,而且在客户端系统上,它也不会带来显而易见的好处。不过,在Windows Server 2008终端服务器系统上,SMSS.EXE的多个实例可以同时运行,使多个用户可以更快的登陆系统。

    BTW:《Windows Internals 》第五版下个月就要出版了,等待0day放出。^)^

  • 相关阅读:
    asp.net 2.0教程 其它服务器控件
    asp.net 2.0教程 个性化用户配置
    asp.net 2.0教程 数据绑定控件
    asp.net 2.0教程 主题和皮肤
    asp.net 2.0教程 网站导航控件
    asp.net 2.0教程 数据缓存
    asp.net 2.0教程 数据源控件
    理解Windows会话
    SlickEdit 编辑器中的王者
    Mark Lucovsky NT内核作者之一
  • 原文地址:https://www.cnblogs.com/s5689412/p/1493017.html
Copyright © 2011-2022 走看看