999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于磁盤過濾驅(qū)動(dòng)的硬盤保護(hù)技術(shù)

2009-04-29 00:00:00魏希三,董巍
電腦知識(shí)與技術(shù) 2009年35期

摘要:針對(duì)傳統(tǒng)利用中斷方式的磁盤保護(hù)有不少安全隱患,分析了一種基于磁盤過濾驅(qū)動(dòng)的硬盤保護(hù)工作機(jī)制。該機(jī)制的核心思想是在對(duì)上層操作系統(tǒng)透明的情況下,重定向?qū)Υ疟P操作的I/O請(qǐng)求包,在重啟系統(tǒng)后自動(dòng)清除緩存數(shù)據(jù)。由于工作在操作系統(tǒng)內(nèi)核層增強(qiáng)了保護(hù)功能的安全性。

關(guān)鍵詞:中斷;過濾驅(qū)動(dòng);硬盤保護(hù);I/ O 請(qǐng)求包

中圖分類號(hào):TP334文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)35-10106-02

The Technology of Hard-disk Protection Method Based on Disk Filter Driver

WEI Xi-san1,2, DONG Wei2

(1.Computer School of Wuhan University, Wuhan 430072, China; 2.Computer Teaching Center, Xiangfan University, Xiangfan 441053, China )

Abstract: The traditional method of disk protection using interrupted many security risks, analysis of a filter driver for hard disk-based protection mechanism. The core idea of the mechanism is operating in the upper transparent circumstances, the redirection operation of the disk I/O request packet, in the reboot the system automatically clear the cache data. As a result of the operating system kernel layer of enhanced security protection.

Key words: INT; filter driver; hard-disk protection; IRP

傳統(tǒng)的硬盤保護(hù)軟/硬件,主要是攔截和接管INT13H中斷,比如現(xiàn)有常見的還原卡就是在引導(dǎo)系統(tǒng)前就預(yù)先修改中斷表,用自己的處理函數(shù)替換了正常的INT13H,在上層系統(tǒng)對(duì)磁盤進(jìn)行存取時(shí),進(jìn)行相應(yīng)的偏移,這種保護(hù)技術(shù)幾乎兼容所有的操作系統(tǒng),并且對(duì)硬盤上的數(shù)據(jù)能起到完整的保護(hù)作用,但它消耗大量的存儲(chǔ)空間(和被保護(hù)空間為1:1),不兼容特殊工作的硬盤(如SCSI硬盤),保護(hù)空間大小有限制(如DOS兼容模式的2.1G,LBA28位尋址的137G限制),并且容易被破解(找到原始的IHT13H的地址,修改即可)。

本文介紹了一種基于磁盤過濾驅(qū)動(dòng)的硬盤保護(hù)(還原)技術(shù),利用微軟本身的系統(tǒng)架構(gòu),對(duì)系統(tǒng)中讀寫磁盤的操作進(jìn)行檢測(cè)和過濾,以達(dá)到對(duì)磁盤數(shù)據(jù)的保護(hù)。

1 磁盤過濾驅(qū)動(dòng)的原理

微軟的Windows在內(nèi)核里對(duì)設(shè)備對(duì)象的管理是分層的,同時(shí),用戶對(duì)任何設(shè)備的訪問都最終會(huì)以IRP(I/O請(qǐng)求包)的形式發(fā)送到目標(biāo)設(shè)備對(duì)象驅(qū)動(dòng)中。

用戶按一定的規(guī)范編寫并安全驅(qū)動(dòng),由系統(tǒng)在特定時(shí)候加載,使用戶層在對(duì)某些設(shè)備進(jìn)行的操作請(qǐng)求按一定的次序,一層又一層地經(jīng)過這些驅(qū)動(dòng),每一層的驅(qū)動(dòng)可以選擇對(duì)這些請(qǐng)求進(jìn)行修改、下傳或者是拋棄。

通常使用一個(gè)磁盤過濾驅(qū)動(dòng),建立一個(gè)磁盤過濾設(shè)備,Attach到磁盤卷設(shè)備,即Device\\HarddiskVolumeX(X為數(shù)字)上,這樣可以監(jiān)控系統(tǒng)對(duì)磁盤數(shù)據(jù)的讀寫、重定向等。

這種硬盤保護(hù)技術(shù)的優(yōu)點(diǎn)在于:因?yàn)檫^濾驅(qū)動(dòng)介于磁盤驅(qū)動(dòng)和用戶層之間,所以它是設(shè)備無關(guān)的,不用考慮當(dāng)前機(jī)器上安裝的是多大的磁盤,也不用考慮磁盤是IDE的還是SCSI的,因?yàn)檫@些工作都由更底層的磁盤驅(qū)動(dòng)來完成了。系統(tǒng)會(huì)把用戶級(jí)對(duì)文件的讀寫操作轉(zhuǎn)化成IRP,交由內(nèi)核的磁盤對(duì)象,內(nèi)核再根據(jù)設(shè)備棧上掛著的驅(qū)動(dòng)順序,一個(gè)個(gè)地把IRP發(fā)給它們。因?yàn)橛沈?qū)動(dòng)完成,可以在驅(qū)動(dòng)中做稍微復(fù)雜的計(jì)算,實(shí)現(xiàn)以下功能:使用比被保護(hù)區(qū)要小的存儲(chǔ)區(qū),存儲(chǔ)區(qū)可以不連續(xù),還可以指定存儲(chǔ)區(qū)的有效期等功能。

2 具體實(shí)現(xiàn)

微軟自帶的系統(tǒng)還原系統(tǒng)主要是基于文件系統(tǒng)的過濾功能,通過安裝的文件系統(tǒng)過濾驅(qū)動(dòng)sr.sys,配合Srrstr.dll、Srsvc.dll、Srclient.dll,監(jiān)聽系統(tǒng)以及某些應(yīng)用程序文件的改變,并使用寫時(shí)拷貝(copy on write)技術(shù),自動(dòng)創(chuàng)建易于識(shí)別的還原點(diǎn)。這種系統(tǒng)還原只要跳過文件系統(tǒng)的讀寫操作保護(hù)就會(huì)失效。

而基于磁盤過濾驅(qū)動(dòng)的保護(hù)系統(tǒng)要對(duì)所包含的分區(qū)或磁盤的讀寫都經(jīng)過過濾處理,并不會(huì)真正修改物理磁盤上的真實(shí)數(shù)據(jù)。重啟系統(tǒng)后,所有緩存的數(shù)據(jù)被丟棄,系統(tǒng)重新回到原來設(shè)置的初始狀態(tài)。

系統(tǒng)加載文件系統(tǒng)后,按照正常運(yùn)行,下一步是加載磁盤驅(qū)動(dòng)。如需要保護(hù)分區(qū),就在這里進(jìn)行掛接磁盤驅(qū)動(dòng)。在文件系統(tǒng)加載后磁盤驅(qū)動(dòng)加載前,截?cái)嗖僮鳎尤胱约旱倪^濾驅(qū)動(dòng),這樣再掛接磁盤驅(qū)動(dòng)繼續(xù)進(jìn)行系統(tǒng)啟動(dòng)。

一個(gè)完整的磁盤過濾驅(qū)動(dòng)的例子可以參考微軟DDK里的一個(gè)例子:\\src\\storage\\filters\\diskperf。

首先要考慮多線程和多CPU,有時(shí)候可能會(huì)有多個(gè)對(duì)磁盤的讀寫IRP同時(shí)到達(dá)了驅(qū)動(dòng)內(nèi)部,要考慮到對(duì)存儲(chǔ)區(qū)的轉(zhuǎn)存應(yīng)該互斥進(jìn)行,這時(shí)可以對(duì)IRP進(jìn)行排隊(duì)。在創(chuàng)建驅(qū)動(dòng)對(duì)象的時(shí)候指定DriverStartIo例程。另外IRP_MJ_WRITE和IRP_MJ_READ都要進(jìn)行排隊(duì),兩者的IRP類似,可以將兩者的例程指定為同一個(gè):

……

DriverObject->DriverStartIo = DFIoStart;

DriverObject->MajorFunction[IRP_MJ_READ]= DFReadWrite;

DriverObject->MajorFunction[IRP_MJ_WRITE] = DFReadWrite;

……

在IRP_MJ_WRITE和IRP_MJ_READ例程里把接收到的IRP投遞到StartIO隊(duì)列

NTSTATUS DFReadWrite(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)

{ IoMarkIrpPending(Irp);

IoStartPacket(DeviceObject, Irp, 0, NULL);

return STATUS_PENDING; }

在StartIo例程里,處理完一個(gè)IO事件以后要用IoStartNextPacket函數(shù)申請(qǐng)下一個(gè)IO事件

void DFIoStart(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)

{……

IoStartNextPacket(DeviceObject, TRUE);

……}

對(duì)IRP排完序,接下來就要對(duì)IRP包的數(shù)據(jù)進(jìn)行移位和存寫,這里有兩種實(shí)現(xiàn)方式:備份保護(hù)和映射保護(hù)。

備份保護(hù)是最常用的保護(hù)方法。如圖2所示,假設(shè)用戶想要對(duì)扇區(qū)10的數(shù)據(jù)進(jìn)行保護(hù),數(shù)據(jù)將被備份到另一個(gè)區(qū)域,這里假設(shè)這個(gè)區(qū)域是扇區(qū)100,那么當(dāng)用戶再進(jìn)行操作時(shí),實(shí)際還是對(duì)扇區(qū)10進(jìn)行操作,如果扇區(qū)10遭到破壞,那么恢復(fù)的時(shí)候?qū)?huì)把扇區(qū)100的數(shù)據(jù)重新拷貝到一個(gè)暫存區(qū)扇區(qū)10。

備份保護(hù)要做兩方面的事情:

1) 判斷是否需要保護(hù);

2) 記錄備份到的扇區(qū)信息。

如:建立一個(gè)索引表格記錄扇區(qū)10->扇區(qū)100這個(gè)關(guān)系。

優(yōu)點(diǎn):簡(jiǎn)單,安全。

缺點(diǎn):占用空間太多。因?yàn)橐粋€(gè)扇區(qū)只能存儲(chǔ)512字節(jié),但是每次記錄索引表格備份關(guān)系的時(shí)候都要用到8個(gè)字節(jié),這樣磁盤空間被大量占用。

解決方法:建立有效數(shù)據(jù)位圖,這樣可以把索引表格縮小。

除了備份保護(hù),還有一種映射保護(hù)。

同樣,假設(shè)需要保護(hù)的扇區(qū)是扇區(qū)10,那么這個(gè)扇區(qū)將被保護(hù)起來,當(dāng)用戶進(jìn)行寫操作的時(shí)候,表面上看,用戶還是對(duì)扇區(qū)10進(jìn)行操作,其實(shí)數(shù)據(jù)已經(jīng)被寫到別的扇區(qū),比如是扇區(qū)100,那么用戶再對(duì)扇區(qū)10進(jìn)行操作的時(shí)候,就會(huì)被轉(zhuǎn)移到扇區(qū)100。如果用戶想恢復(fù)數(shù)據(jù),直接就是恢復(fù)的扇區(qū)10的數(shù)據(jù)。

圖4是用戶進(jìn)行讀操作的過程,當(dāng)數(shù)據(jù)進(jìn)入后,首先要讀取保護(hù)位圖,查看模塊是否被保護(hù),如果被保護(hù),進(jìn)入映射表查找數(shù)據(jù)存儲(chǔ)的模塊。

同時(shí),為了防止應(yīng)用程序直接存取物理磁盤設(shè)備,即\\Device\\HarddiskX\\DRX,繞過磁盤卷的過濾驅(qū)動(dòng),通常還會(huì)再創(chuàng)建一個(gè)磁盤過濾設(shè)備,并Attach到物理磁盤設(shè)備上,來過濾對(duì)真實(shí)物理磁盤設(shè)備的讀寫 。

3 結(jié)束語

目前的硬盤保護(hù)卡(還原卡)多使用磁盤過濾驅(qū)動(dòng)來做數(shù)據(jù)還原和保護(hù)。由于它工作在內(nèi)核層,所以破解的難度系數(shù)高,工作穩(wěn)定。但隨著機(jī)器狗等更多能穿透保護(hù)的病毒出現(xiàn),使得這種保護(hù)不是一勞永逸。今后在更底層比如直接端口IO監(jiān)控上還有完善的空間。

參考文獻(xiàn):

[1] MJ0011,還原系統(tǒng)保護(hù)攻防[EB/OL].http://hi.baidu.com/mj0011/blog.

[2] 張帆,史彩成.Windows驅(qū)動(dòng)開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.

[3] 劉蓬.用DDK開發(fā)WDM驅(qū)動(dòng)程序[J].計(jì)算機(jī)應(yīng)用,2003(S2).

[4] 彭海云,胡洪安.磁盤免疫系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].河南大學(xué)學(xué)報(bào):自然科學(xué)版,2009,39(3).

[5] Cant C.Windows WDM 設(shè)備驅(qū)動(dòng)程序開發(fā)指南[M].孫義,馬莉波,譯.北京:機(jī)械工業(yè)出版社,2000.

主站蜘蛛池模板: 国产精品亚欧美一区二区三区| 亚洲第一黄色网址| 日韩精品高清自在线| 午夜性刺激在线观看免费| 亚洲人妖在线| 国产精品黄色片| 亚洲大尺度在线| 午夜福利在线观看入口| 毛片网站在线看| 97国产精品视频自在拍| 99精品在线视频观看| 亚洲欧美不卡视频| 欧美激情成人网| 国产精品林美惠子在线播放| 国产精品一区二区不卡的视频| 五月综合色婷婷| 久久这里只有精品国产99| 国产偷倩视频| 国产在线一区视频| 亚洲欧美自拍视频| 无码'专区第一页| 99国产精品一区二区| 亚洲成年人片| 国产69精品久久| 99er这里只有精品| 少妇精品网站| 亚洲色中色| 国产精品免费p区| 婷婷激情五月网| 免费Aⅴ片在线观看蜜芽Tⅴ | 久久这里只精品国产99热8| 国产美女在线观看| 久久久噜噜噜| 又爽又黄又无遮挡网站| 欧美精品不卡| 国产区免费| 91精品久久久久久无码人妻| 亚洲熟女偷拍| 免费国产不卡午夜福在线观看| 91小视频在线观看免费版高清| 99re热精品视频国产免费| 久久黄色毛片| 国产最爽的乱婬视频国语对白 | 国产精品一区在线麻豆| 日韩毛片免费| 国产性猛交XXXX免费看| 久久精品无码国产一区二区三区 | 一级爱做片免费观看久久| 亚洲成人精品在线| 九九九国产| 中文字幕 91| 色综合国产| 亚洲不卡无码av中文字幕| 伊人色综合久久天天| 国产丝袜无码精品| 亚洲天堂久久新| 一区二区欧美日韩高清免费| 日本人妻一区二区三区不卡影院| 亚洲香蕉久久| 久热中文字幕在线观看| 日韩毛片免费视频| av在线5g无码天天| 在线观看91精品国产剧情免费| 精品無碼一區在線觀看 | 国产亚洲高清在线精品99| 伊人天堂网| 制服丝袜无码每日更新| 国产91精选在线观看| 十八禁美女裸体网站| 欧美在线精品一区二区三区| 综1合AV在线播放| 欧美激情视频一区| 国产小视频在线高清播放| 91久久性奴调教国产免费| 久久综合九色综合97婷婷| 91国内视频在线观看| 亚洲天堂网视频| 国产性生交xxxxx免费| 在线观看精品自拍视频| 国产sm重味一区二区三区| 亚洲有无码中文网| 欧美日韩国产在线观看一区二区三区|