程序的相關結構非常重要,重點學習~
有一些內容參考自:
程序控制塊位於每個程序eprocess的開頭,因此它的位址也就是eprocess的位址.
lkd> dt _kprocess
nt!_kprocess
+0x000 header : _dispatcher_header
+0x010 profilelisthead : _list_entry
+0x018 directorytablebase : [2] uint4b //頁目錄
+0x020 ldtdescriptor : _kgdtentry //gdt
+0x028 int21descriptor : _kidtentry //idt
+0x030 iopmoffset : uint2b
+0x032 iopl : uchar
+0x033 unused : uchar
+0x034 activeprocessors : uint4b
+0x038 kerneltime : uint4b //核心時間
+0x03c usertime : uint4b //使用者態時間
+0x040 readylisthead : _list_entry
+0x048 swaplistentry : _single_list_entry
+0x04c vdmtrapchandler : ptr32 void
+0x050 threadlisthead : _list_entry
+0x058 processlock : uint4b
+0x05c affinity : uint4b
+0x060 stackcount : uint2b
+0x062 basepriority : char
+0x063 threadquantum : char
+0x064 autoalignment : uchar
+0x065 state : uchar
+0x066 threadseed : uchar
+0x067 disableboost : uchar
+0x068 powerstate : uchar
+0x069 disablequantum : uchar
+0x06a idealnode : uchar
+0x06b flags : _kexecute_options
+0x06b executeoptions : uchar
peb中的ldr:
lkd> dt _peb_ldr_data
nt!_peb_ldr_data
+0x000 length : uint4b
+0x004 initialized : uchar
+0x008 sshandle : ptr32 void
+0x00c inloadordermodulelist : _list_entry
+0x014 inmemoryordermodulelist : _list_entry
+0x01c ininitializationordermodulelist : _list_entry
+0x024 entryinprogress : ptr32 void
Windows核心常見資料結構 基本型別)
學核心從基本資料結構開始吧,就像學 語言時從學習int,char開始一樣 只列出目前見到和用到的,其它後面再補充 常用資料結構 數字 lkd dt ularge integer ntdll ularge integer 0x000 lowpart uint4b 0x004 highpart uint...
常見資料結構
陣列 array 在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列 字元陣列...
常見資料結構對比
最近看一本講程式設計藝術的書,裡面提了個問題 常見資料結構有哪些?以前都是用到什麼資料結構,去查相應資料,一直沒仔細想過這個問題,一時心血來潮,決定做個 總結下幾種資料結構的特點。如果哪位大神發現了錯誤,請通知小弟一聲,小弟馬上修改,謝謝。名稱 描述隨機訪問時間複雜度 特點優點 缺點陣列 資料型別的...