當前位置:編程學習大全網 - 編程語言 - 關於Windows內核編程的問題

關於Windows內核編程的問題

其實Windows內核編程不但有用,而且常用。很多我們每天都使用的軟件,就毫無疑問的使用了Windows內核編程的技術。最典型的就是實時監控的殺毒軟件。此外還有防火墻、虛擬光驅、以及90%的驅動程序。這些程序的有壹個***同的特點,他們的壹部分組件,是作為Windows的壹部分,能對 Windows上運行的所有的應用程序起作用。

因此內核編程的應用,往往給傳統軟件帶來更強的功能,實現技術上的飛躍。

舉個例子。我們常常聽說,對文件進行加密,可以使文檔更加安全。對文件加密並不需要任何內核組件。我們可以寫壹個應用程序,讀入文件,加密數據,然後重寫為壹個加密文件。解密也可以同樣如此。

但是實際上這並不滿足壹般的用戶需求。對壹個公司的員工來說,那些“重要的文檔”很可能就是每天工作所用的文件。想象壹下,他必須要每天從服務器上下載加密的文件,然後用解密工具解密。然後用Office開始工作。工作完畢後,用加密工具加密,再上傳,然後刪除工作文檔。且不說大部分時間文檔是以解密的方式保存在硬盤上的不安全性,這個工作流程是可以接受的嗎?沒有人會接受的。

比較“人性化”的方式就是讓Office可以直接打開已經加密的文檔。保存的時候,直接就保存成加密的文檔。硬盤上,這個文檔始終是加密的。而且對合法的用戶透明。對非法的用戶,則只能看見密文,從而無法編輯也無法閱讀。而且也不僅僅Office,還有AutoCAD、Visual Studio、Photoshop等等用戶可能用於編輯機密文件的所有的工具。這是可以實現的嗎?如果我們不能去修改Office和其他的工作軟件。

這當然是可以實現的。既然我們編寫Windows內核程序,當然可以讓Windows的文件系統從硬盤讀取文件的時候,對特定的進程進行特別的解密。等這些軟件讀取到數據的時候,它們讀到的已經是正常的數據了。這個過程和實時掃描病毒的原理是壹樣的,使用壹個文件過濾驅動程序。這就是讀者可能已經聽到過的文件透明加密技術。

在和《天書夜讀:從匯編語言到Windows內核編程》壹書同壹系列的《寒江獨釣——Windows內核編程與信息安全》(預計明年出版)中,對鍵盤過濾、硬盤過濾、文件過濾、網絡過濾等安全相關的內核編程,都有詳盡的講解和例子。

內核編程的另壹個特點是:這些代碼運行在R0級。R0級別是最高特權級別。對CPU有完全控制的能力。這非常的適合壹些安全軟件,當然也適合做破壞的工作。因為內核程序有最高(也就是根)權限,這樣的技術在安全領域(或者破壞領域)被稱為rootkit技術。rootkit技術是當前安全領域最熱門的技術之壹。

許多病毒使用了rootkit技術。用來隱藏病毒文件,竊取密碼、發送攻擊包等等。rootkit病毒感染後極難清除,在感染前提前防範是最有效的辦法。

Windows內核確實沒有公開源代碼。但是MS提供Windows內核程序的開發包:WDK。WDK實際上主要用於開發驅動程序。而驅動程序基本上都是內核程序。WDK提供的頭文件以及部分源代碼,實際上就是Windows內核的代碼的壹部分。有部分驅動程序(比如FAT32文件系統)的代碼是完全公開的。我們也可以在這裏看到Windows內核開發者的代碼風格。同時,微軟也提供了所有Windows版本的符號表在網上供研究者下載。並提供了功能無比強大的調試器WinDbg。有了它們,妳就可以輕松的調試Windows內核了。無論是妳自己寫的代碼的部分,還是Windows內核開發者們編寫的部分。雖然看到的是匯編語言,但是函數名和全局變量名都是存在的。而且,所有的這些(WDK、WinDBG,符號表)都是免費的。

  • 上一篇:湖北中醫藥大學怎麽樣?
  • 下一篇:電腦分幾個盤好
  • copyright 2024編程學習大全網