windows系統背景知識學習筆記

來源:互聯網
上載者:User

標籤:windows核心

前言

對於每天都要在windows平台上進行逆向工程任務的我們而言,稍微瞭解一些系統底層的機制與實現原理,用這些背景知識來武裝自己總是好的。

調試器,反組譯碼器,加包,解包器,虛擬機器,等等,無一不是運行在windows系統上,

甚至對核心調試器如SoftICE,WinDbg等工具的使用,也要求瞭解一些系統的內幕。


最近抽空在閱讀《深入解析windows作業系統第6版上冊》這本書,因此將其中與軟體逆向有關的重點總結出來,部分內容加上了個人的理解進行潤色,並非斷章取義,而是去蕪存菁。

筆記會不定期更新,對於某些作者的觀點,嘗試加入自己的實驗過程來驗證。


********************************

在windows系統架構中,運行在使用者模式下的進程有4種基本類型,各自有其私人的進程地址空間:

1。固定的(或者硬性指定的)“系統支援進程“,比如登入(logon)進程,會話管理器(session manager)進程,它們並不是windows服務,也就是說,它們不是由“服務控制管理員”

來啟動的。登入進程名為winlogon.exe,即“windows登入應用程式”,由此可見它是運行在使用者模式下。會話管理器進程名為smss.exe,所有使用者模式進程在sysinternal的進程瀏覽器

中,其“private bytes”列都會顯示出使用的位元組數;相反,核心模式組件或服務,其private bytes列中沒有資料;服務控制管理員也是使用者模式進程之一,其進程名為services.exe

2。服務進程,服務進程宿納的是各種windows服務,這些服務可以通過運行services.msc來查看。windows服務往往要求獨立於使用者登入而運行(在使用者登入前,以及使用者不登入時,都

必須運行)svchost.exe就是服務進程,運行在使用者模式下

3。使用者應用程式

4。環境子系統服務進程

注意,服務進程與使用者應用程式,並不直接調用原生的windows作業系統服務,而是先調用一個或者多個子系統DLL(動態連結程式庫)中的A函數,

由A調用ntdll.dll中的相應B函數,B再調用原生的windows作業系統服務,後者運行在核心模式。

由此可見,子系統DLL運行在使用者模式,它扮演的角色即是,通過子系統DLL中一個已經文檔化的windows API函數,最終調用原生的系統服務,這些服務通常是未文檔化的。

(注意這裡的系統服務與前面提到的windows服務是兩個不同的事物)

補充說明,關於“子系統DLL的支援DLL”:ntdll.dll

ntdll.dll是一個特殊的系統支援庫,主要被其它的子系統DLL使用。應用程式調用某個子系統DLL中的windows API 函數,後者再調用ntdll.dll中的相應函數,例如NtCreateFile,

NtSetEvent等。雖然這些以Nt開頭的函數仍舊是運行在使用者模式,但是這些函數內部的程式碼封裝含了與處理器體繫結構相關的“處理器特權模式”切換指令,通過該指令可以切換到核心模式,

從而調用核心模式下的“系統服務分發(調度)器”。系統服務分發器在檢查某些參數的合法性以後,再由它調用真正的核心模式系統服務,其中包括Ntoskrnl.exe內部的實際代碼。

也就是說,從使用者模式到核心模式的轉換點位於ntdll.dll中的函數內部。

********************************



本文出自 “自由,平等,共用,互助” 部落格,請務必保留此出處http://shayi1983.blog.51cto.com/4681835/1617979

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.