Windows會話登入流程

來源:互聯網
上載者:User

標籤:c   style   blog   a   http   ext   

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作業系統》(第四版)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.