編寫安全的驅動程式之驗證驅動的呼叫者

2021-05-26 14:40:42 字數 378 閱讀 4538

有很多驅動程式載入後,會在驅動程式入口函式driverentry中建立驅動裝置,並建立符號鏈結,同時還會指定派遣例程。這樣一來,所有使用者態程式都可以通過deviceiocontrol函式,呼叫該驅動的派遣例程。即存在ring3惡意呼叫ring0驅動派遣例程的問題,對於這種呼叫ring0程式應進行驗證和過濾。

作為不夠健壯的第三方驅動程式,更容易因為這種惡意呼叫被干擾,發生邏輯錯誤,甚至觸發可能存在的核心漏洞。因此需要考慮驅動程式的通訊物件和呼叫**,在派遣例程中對此進行必要的安全驗證和過濾。

驗證和過濾的方法有很多,例如檢查呼叫者程序的peprocess,程序檔案的md5,等等。除此之外,還可以考慮使用者態程式和驅動程式的通訊加密,對於解密失敗或非法通訊資料的情況可以不予處理。

圖書詳細資訊:

編寫安全的驅動程式之驗證驅動的呼叫者

有很多驅動程式載入後,會在驅動程式入口函式driverentry中建立驅動裝置,並建立符號鏈結,同時還會指定派遣例程。這樣一來,所有使用者態程式都可以通過deviceiocontrol函式,呼叫該驅動的派遣例程。即存在ring3惡意呼叫ring0驅動派遣例程的問題,對於這種呼叫ring0程式應進行驗...

LCD驅動程式的編寫

這兩天我花了很多時間研究液晶螢幕,用的黑金開發板,fpga 晶元是 cyclone iv ep4ce15f17c8 主要包括硬體開發 quartus 11sp1下 sopc 新增nios processor 新增pio引腳。有兩次編譯過程,生成nios 和綜合。我的電腦是雙核的,1.83主頻,2g ...

Linux驅動程式編寫

linux作業系統網路驅動程式編寫 一.linux系統裝置驅動程式概述 1.1 linux裝置驅動程式分類 1.2 編寫驅動程式的一些基本概念 二.linux系統網路裝置驅動程式 2.1 網路驅動程式的結構 2.2 網路驅動程式的基本方法 2.3 網路驅動程式中用到的資料結構 2.4 常用的系統支援...