《windows內核情景分析》對象的創建

      創建系統調用的過程:

    1.通過ObCreateObject()創建目標對象

    2.目標對象本身的初始化

    3.通過ObInsertObject()將目標對象插入對象目錄和句柄表,並返回句柄。

    凡是創建對象的系統調用,都要提供至少兩個輸入參數,其一是DesiredAccess,說明所創建對象的訪問模式;另外一個是ObjectAttributes,這是一個OBJECT_ATTRIBUTES結構指針

ntdll!_OBJECT_ATTRIBUTES
   +0x000 Length           : Uint4B
   +0x004 RootDirectory    : Ptr32 Void
   +0x008 ObjectName       : Ptr32 _UNICODE_STRING
   +0x00c Attributes       : Uint4B
   +0x010 SecurityDescriptor : Ptr32 Void
   +0x014 SecurityQualityOfService : Ptr32 Void

    對象總是創建在某個目錄中,這個目錄必須事先已經打開,當前進程必須擁有這個已打開目錄的句柄。這裏的字段RootDirectory就是這個目錄節點的句柄.

    由OBJECT_ATTRIBUTES數據結構帶下來的某些信息最後進了目標對象頭部的OBJECT_HEADER和OBJECT_CREATE_INFORMATION數據結構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章