核心獲得中斷描述表位址

2021-06-18 08:21:48 字數 718 閱讀 8152

/*

《rootkits--windows核心的安全防護》

1.中斷描述表暫存器(idtr)可以儲存中斷描述表在記憶體的基位址,idt用於查詢處理中斷所用的軟體函式十分重要

2.idt由256項組成的陣列-----每個中斷對應乙個項,即乙個處理器最多支援256個中斷

3.每個處理器都擁有自己的idt,即擁有自己的中斷表。

*/#include "ntddk.h"

#define max_idt_size 255 //idt最大的數為256

#define makelong(a, b) (((ulong)(a))|(((ulong)(b))<<16))

//通過sidt命令以如下的格式來儲存 中斷描述暫存器 的內容

typedef struct

idt_info;

//idt最多包含項為256,其中每項都包含乙個中斷服務指標,各項的結構為

typedef struct

idtentry;

void onunload( in pdriver_object driverobject )

ntstatus driverentry( in pdriver_object thedriverobject, in punicode_string theregistrypath )

return status_success;

}

中斷描述符表

中斷描述表是乙個系統表,它與每乙個中斷或異常向量相聯絡,每乙個向量在表中有相應的中斷或異常處理程式的入口位址。核心在允許中斷發生前,必須適當地初始化idt。在第二章中,我們介紹了gdt和ldt,idt的格式與這兩種表的格式非常相似,表中的每一項對應乙個中斷或異常微量,每個向量由8個位元組組成。因此,...

初始化中斷描述表

現在,我們知道了 80x86 微處理器在硬體級對中斷和異常做了些什麼,接下來,我們可以繼續描述如何初始化中斷描述表。核心啟用中斷以前,必須把 idt表的初始位址裝到 idtr 暫存器,並初始化表中的每項。這項工作是在初始化系統時完成的。int指令允許使用者態程序發出乙個中斷訊號,其值可以是 0 25...

彙編 設定中斷描述符表

操作的步驟如下 1 記錄中斷處理函式的段內偏移 2 獲取或指定段選擇子 3 對idt表賦值 本操作是對所有的中斷都採用同一的函式 myintfunc 處理 注 idt 中斷描述符表的基址 idt descr 中斷描述符操作的引數 圖示如下 63.55.47.39.31.23.15.7.0 myint...