2010-08-09 82 views
1

需要多長時間爲Windows NT內核/系列內核開發內核補丁或驅動程序,這將引入新功能或替換現有功能?爲Windows開發內核補丁或驅動程序?

例如,添加一個不同的加密算法,或實現某種新的安全模型。

實際編寫內核補丁和驅動程序之間有哪些優點/缺點?

理論上可以繞過一個驅動程序,內核補丁程序無法做到這一點?

我瞭解Windows內核是專有的,這是很難寫一個內核補丁吧,不過這也正是一些公司,尤其是AV公司做的,沒有從微軟的合作,所以它是可能的...

+0

你想實現什麼?內核補丁不適用於Windows。在windows下,你可以在內核中安裝鉤子,或者在靜態(記錄)的API中加載驅動程序,這些API在不久的將來不會改變。 – Christopher 2010-08-09 11:09:43

回答

7

不同的加密算法

這是通過延伸的加密提供者來完成。有一個你可以做到的框架。

新的安全模式

什麼樣的新的安全模式?

  • 如果您想對一個應用程序進行更具體的控制,您可以構建一個沙箱。
  • 如果您想要對操作系統進行更具體的控制,請將操作系統置於虛擬機中。
  • 如果你有一些全新的東西,你必須編寫一個新的內核。正確的管理是一個非常廣泛的話題,您必須觸及每個入口才能使您的解決方案發揮作用。

理論上可以繞過驅動程序,內核補丁不能?

不,是......你認爲駕駛員如何改變安全模式?

但這正是幾家公司,特別是AV公司所做的。

不,他們沒有。他們有一個內核驅動程序,它掛鉤了正確的功能。大多數AV軟件會掛接ReadFile/WriteFile/CreateFile API,在這些API中檢查「惡意代碼序列」。這不是一個安全模型。它只是一個二進制「可能訪問/不可訪問」檢查。

+0

對於大多數AV軟件來說+1是鉤住ReadFile/WriteFile/CreateFile API的。 – fardjad 2010-08-09 11:24:41

+0

你的答案充滿了很多不正確的信息,並沒有解決問題。閱讀KPP,爲什麼會出現這樣的問題。 – 2010-08-10 05:52:04

+0

清理了'錯誤'位。但是我不明白,當你看到這個問題時,這些信息是錯誤的。重複拿走的東西'你無法輕鬆添加新的安全模型'。 – Christopher 2010-08-10 10:58:08

1

修改內核工作方式的正確方法是編寫一個過濾器驅動程序,用於修改或偵聽驅動程序之間傳輸的信息。

那是最接近合法的補丁

關於補丁的內核函數表...你不應該這樣做的原因是:它不會在64 edtions工作。因爲它不能在x64 edtion中工作,所以即使對於32位,WLK也不能證明您的驅動程序。如果你不能證明你的驅動程序,你最終會得到一個未經認證的驅動程序,這是非常危險的(例如,你不能預裝在計算機上,然後通過認證)。

0

一般來說,擴展SSDT中的服務數量是可能的,但是它非常混亂,特別是Vista比以往更加不可能。我不是說不可能的,但它需要一個跳過幾個籃球(一次;))。

否則我與DriverStack。正確的方法是編寫過濾器驅動程序來修改現有服務,或者簡單地編寫驅動程序並創建可從UM(或KM)訪問的CDO(控制設備對象),並且可以接收IRP以提供它所提供的服務旨在提供...

驅動程序自己機制來擴展內核。與幾個FLOSS平臺不同的是,Windows內核的界面非常穩定:o)

注意:如果AV公司並不是太大膽,它會訴諸過濾器驅動程序。是的,這最終也意味着某些功能被操縱,但是那些AVs 掛鉤那些(Win32,即UM)API的聲明是......好的,錯誤。可悲的是,我不可能爲這個事實錯誤降低投票的答案(因爲我在這裏缺乏「聲譽」)。過濾將以任何方式在內核中進行。通常通過FS過濾器驅動程序或SSDT掛鉤的某些功能。 SSDT包含指向內核底層函數的函數指針,所以從UM你可以通過它的索引(「系統調用號碼」)調用系統調用,就像在unixoid平臺上一樣。