lbdbzj110 发表于 2018-6-14 08:53:34

Windows内核常见数据结构

Windows内核常见数据结构(基本类型)

  学内核从基本数据结构开始吧,就像学C语言时从学习int,char开始一样.
只列出目前见到和用到的,其它后面再补充~
  
常用数据结构:
  数字:
lkd> dt _ULARGE_INTEGER
ntdll!_ULARGE_INTEGER
    +0x000 LowPart         : Uint4B
    +0x004 HighPart          : Uint4B
    +0x000 u               : __unnamed
    +0x000 QuadPart          : Uint8B
  lkd> dt _LARGE_INTEGER
ntdll!_LARGE_INTEGER
    +0x000 LowPart         : Uint4B
    +0x004 HighPart          : Int4B
    +0x000 u               : __unnamed
    +0x000 QuadPart          : Int8B
  字符串:
lkd> dt _STRING
nt!_STRING
    +0x000 Length            : Uint2B
    +0x002 MaximumLength   : Uint2B
    +0x004 Buffer            : Ptr32 Char

lkd> dt _UNICODE_STRING
ntdll!_UNICODE_STRING
    +0x000 Length            : Uint2B
    +0x002 MaximumLength   : Uint2B
    +0x004 Buffer            : Ptr32 Uint2B
  单链表头(看来数据结构要学好啊)::
lkd> dt _SLIST_HEADER
ntdll!_SLIST_HEADER
    +0x000 Alignment         : Uint8B
    +0x000 Next            : _SINGLE_LIST_ENTRY
    +0x004 Depth             : Uint2B
    +0x006 Sequence          : Uint2B
  链表结点:
lkd> dt _KNODE
ntdll!_KNODE
    +0x000 ProcessorMask   : Uint4B
    +0x004 Color             : Uint4B
    +0x008 MmShiftedColor    : Uint4B
    +0x00c FreeCount         : Uint4B
    +0x018 DeadStackList   : _SLIST_HEADER          //链表头
    +0x020 PfnDereferenceSListHead : _SLIST_HEADER
    +0x028 PfnDeferredList : Ptr32 _SINGLE_LIST_ENTRY
    +0x02c Seed            : UChar
    +0x02d Flags             : _flags
  单链表的指针:
lkd> dt _SINGLE_LIST_ENTRY
ntdll!_SINGLE_LIST_ENTRY
    +0x000 Next            : Ptr32 _SINGLE_LIST_ENTRY
  双向链表指针:
lkd> dt _LIST_ENTRY
ntdll!_LIST_ENTRY
    +0x000 Flink             : Ptr32 _LIST_ENTRY
    +0x004 Blink             : Ptr32 _LIST_ENTRY
  内核队列:
lkd> dt _KQUEUE
ntdll!_KQUEUE
    +0x000 Header            : _DISPATCHER_HEADER
    +0x010 EntryListHead   : _LIST_ENTRY
    +0x018 CurrentCount      : Uint4B
    +0x01c MaximumCount      : Uint4B
    +0x020 ThreadListHead    : _LIST_ENTRY
  一个很多地方用到的头部结构:
lkd> dt _DISPATCHER_HEADER
ntdll!_DISPATCHER_HEADER
    +0x000 Type            : UChar
    +0x001 Absolute          : UChar
    +0x002 Size            : UChar
    +0x003 Inserted          : UChar
    +0x004 SignalState       : Int4B
    +0x008 WaitListHead      : _LIST_ENTRY
页: [1]
查看完整版本: Windows内核常见数据结构