資源描述:
《windowsnt內(nèi)核下文件系統(tǒng)過濾驅(qū)動程序開發(fā)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第31卷第1期華中科技大學學報(自然科學版)Vol.31No.12003年1月J.HuazhongUniv.ofSci.&Tech.(NatureScienceEdition)Jan.2003WindowsNT內(nèi)核下文件系統(tǒng)過濾驅(qū)動程序開發(fā)李凡劉學照盧安謝四江華中科技大學北京電子科技學院計算機科學與技術(shù)學院科研中心摘要:分析了基于NT內(nèi)核的WindowsNT/2000/XP操作系統(tǒng)下文件系統(tǒng)過濾驅(qū)動程序的開發(fā)原理、步驟和應(yīng)用,以實現(xiàn)動態(tài)的病毒掃描、透明的文件加密解密、文件保護和系統(tǒng)恢復(fù)等功能,保障了文件系統(tǒng)的信息
2、安全.給出了一個實現(xiàn)透明的文件加解密的過濾驅(qū)動程序?qū)嵗?關(guān)鍵詞:WindowsNT內(nèi)核;過濾驅(qū)動;文件系統(tǒng);IRP中圖分類號:TP311.5文獻標識碼:A文章編號:167124512(2003)0120019203在WindowsNT和基于NT內(nèi)核的Windows個I/O請求包(IRP)的處理分別經(jīng)過各層驅(qū)動程2000/XP操作系統(tǒng)中,通常需要通過開發(fā)文件系序,直到某層驅(qū)動程序完成這個請求.這樣第三方統(tǒng)過濾驅(qū)動程序來保證文件系統(tǒng)的信息安全運開發(fā)的驅(qū)動程序就有機會插入到這個層次結(jié)構(gòu)中行,主要包括動態(tài)病毒掃描、透明文
3、件加密解密、并獲得截獲及處理來自上層的操作請求的機會,[2]文件保護和系統(tǒng)恢復(fù)等功能.文件系統(tǒng)驅(qū)動程序把這種驅(qū)動程序稱為過濾驅(qū)動程序.(FileSystemDriver,簡稱FSD)管理文件系統(tǒng)格文件系統(tǒng)過濾驅(qū)動程序是針對文件系統(tǒng)而言式.WindowsNT的文件系統(tǒng)驅(qū)動程序是I/O子系的.WindowsNT的I/O管理器根據(jù)用戶的文件操統(tǒng)的一個組件,為用戶提供在磁盤或者磁帶等非作請求構(gòu)造IRP發(fā)到文件系統(tǒng)驅(qū)動程序,文件系易失性存儲介質(zhì)上存取數(shù)據(jù)服務(wù).WindowsNT的統(tǒng)驅(qū)動程序把相應(yīng)于文件系統(tǒng)的操作轉(zhuǎn)換為相應(yīng)文
4、件系統(tǒng)驅(qū)動程序和其他的設(shè)備驅(qū)動程序的一個于存儲設(shè)備驅(qū)動程序的操作并通過I/O管理器[3]主要的區(qū)別就在于文件系統(tǒng)驅(qū)動程序和內(nèi)存管理來調(diào)用存儲設(shè)備驅(qū)動程序.I/O管理器在發(fā)送器、高速緩存管理器有機的結(jié)合在一起,有著密不操作請求到目標設(shè)備之前會檢查是否有其他的設(shè)可分的關(guān)系.為了提高系統(tǒng)性能,FSD通常使用備附著于目標設(shè)備對象之上.通過構(gòu)造附加的設(shè)高速緩存(Cache)管理器以高速緩存文件數(shù)據(jù).備對象附著在文件系統(tǒng)或者存儲設(shè)備對象之上,FSD還和內(nèi)存管理器結(jié)合起來,以使內(nèi)存映射文并為該設(shè)備對象指定專門的驅(qū)動程序,I/O
5、管理[1]件能被正確實現(xiàn).本文首先探討文件系統(tǒng)過濾器就會把要發(fā)送到目標設(shè)備的請求先發(fā)到附加的驅(qū)動程序開發(fā)的原理和步驟,然后給出一個實現(xiàn)過濾設(shè)備,在該設(shè)備對應(yīng)的過濾驅(qū)動程序中對原文件透明加密解密的實例.由于WindowsNT/始請求加入附加的處理來實現(xiàn)對文件系統(tǒng)操作的2000/XP操作系統(tǒng)的文件系統(tǒng)過濾驅(qū)動程序開截取、監(jiān)控甚至替換.發(fā)有著很類似的方面,下文中如果沒有特別說明,文件系統(tǒng)過濾驅(qū)動程序可以附著在文件系統(tǒng)則是針對以NT內(nèi)核為基礎(chǔ)的WindowsNT/驅(qū)動程序之上,也可以加入到文件系統(tǒng)驅(qū)動程序2000/XP操
6、作系統(tǒng)而言的.和存儲設(shè)備驅(qū)動程序之間,如圖1所示.具體實現(xiàn)一個過濾驅(qū)動程序的基本步驟包1文件系統(tǒng)過濾驅(qū)動程序開發(fā)括:構(gòu)造一個設(shè)備對象(過濾設(shè)備)附著在目標設(shè)備上;在這個過濾設(shè)備對應(yīng)的驅(qū)動程序(過濾驅(qū)動WindowsNT的I/O管理器是一個可擴展的程序)中截取發(fā)送到目標設(shè)備的操作;在過濾操作結(jié)構(gòu),通過開發(fā)過濾驅(qū)動程序可以擴展I/O子系中可能需要構(gòu)造新的IRP來驅(qū)動下層驅(qū)動程序,統(tǒng)的功能.I/O管理器支持分層驅(qū)動程序模型,每也可能需要為某個IRP指定對應(yīng)的完成例程以收稿日期:2002209203.作者簡介:李凡(19
7、432),男,教授;武漢,華中科技大學計算機科學與技術(shù)學院(430074).基金項目:國家高性能計算基金資助項目(00303).?1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http://www.cnki.net20華中科技大學學報(自然科學版)第31卷待,并有一個對應(yīng)的FILE-OBJECT結(jié)構(gòu)描述其屬性),調(diào)用IoGetRelatedDeviceObject得到硬盤分區(qū)設(shè)備對象指針.然后調(diào)用IoCreateD
8、evice來構(gòu)造代表過濾器的一個設(shè)備并為它指定驅(qū)動程序也就是過濾驅(qū)動程序.最后調(diào)用IoAttachDe2viceByPointer把該設(shè)備掛接在硬盤分區(qū)設(shè)備上.這樣文件系統(tǒng)驅(qū)動程序發(fā)送到這個硬盤分區(qū)設(shè)備的所有請求都會先經(jīng)過過濾器.硬盤驅(qū)動程序由DriverEntry提供一系列的IRP處理函數(shù)供高層驅(qū)動程序調(diào)用.在過濾驅(qū)動程序中實現(xiàn)加密解密是通過截取IRP-MJ-圖1文件系