物件,是乙個特殊的資料結構,用來定義受保護得實體,我們平時所說得物件實際上是物件體,例如程序物件,就是eprocess。所以核心物件不能直接被使用者層進行操作,那我們只能通過控制代碼。控制代碼是乙個指向物件得指標。物件具有唯一性,但是控制代碼可以有多個,也就是說乙個物件可以有多個控制代碼來引用它,對它進行操作。用來管理命名物件的東西,叫做物件目錄,物件目錄我在後面會做介紹。
物件中最重要的兩個結構成員
物件頭:
object_header
物件體:沒有固定的大小,會根據物件型別的不同而不同。
0
: kd> dt _object_header
nt!_object_header
+0x000 pointercount : int4b//物件的引用計數,若為0,物件管理器會刪除物件
+0x004 handlecount : int4b
核心控制代碼表 Windows核心學習筆記
學習到控制代碼知識的時候,看一下控制代碼表的知識點。核心在為當前程序開啟目標物件之後,即在當前程序與目標物件之間建立起聯絡之後,就會返回控制代碼,以供程序的後續操作。每個有效的控制代碼都對應著控制代碼表中的乙個表項,表項在控制代碼表中的位置取決於控制代碼的值。每當程序建立或者開啟乙個物件,要為之建立...
列舉核心控制代碼表 Windows核心學習筆記
前面我寫過有關核心控制代碼表的一些知識,今天來在這裡跟大家分享一下我自己寫的核心列舉程序控制代碼方法。include enumprocesshandletable.h ifdef win64 define handle table 0x200 硬偏移win7x64下的handle table欄位在e...
Linux核心學習
交叉工具鏈 核心相關知識 linux系統的構成 使用者空間 核心空間 思考 為什麼劃分為兩個層次?目的其實是為保護作業系統,防止應用程式的異常導致作業系統崩潰。核心空間與使用者空間是程式執行的兩種不同狀態,通過系統呼叫和硬體中斷能夠完成從使用者空間到核心空間的轉移。那麼linux的核心由哪些構成呢?...