Vista Win7下的直接磁碟寫入

2021-05-28 08:16:04 字數 2220 閱讀 7692

2023年06月21日 21:53

vista/win7的安全性有很大提高,對於磁碟的直接寫入的防護就是其中乙個方面。

詳情我這裡不多說,你可以自己參考mj0011的

《vista & win7對直接磁碟寫入的防護》。

在檔案系統層和磁碟層,都對磁碟直接寫入有了防護。具體地,檔案系統層體現在ntfs.sys和fat32.sys中,磁碟層應該是在volmgr.sys(未驗證),所以不管是對卷的寫入,還是對磁碟(physicaldriver)的寫入,都統統沒戲了。解決方法呢,就是用驅動啦~~下面的**也是「上網記錄深度擦除工具 v1.2」所帶驅動的核心部分,用於實現對磁碟的直接寫入。

下面是我原始碼中的乙個重要函式,原函式**於網上的開源**,我只是稍做修改,在此表示對原作者表示感謝。

#define sl_force_direct_write           0x10

ntstatus

irpwritefile(

in pfile_object fileobject,

out pio_status_block iostatusblock,

in pvoid buffer,

in ulong length,

in plarge_integer byteoffset optional)

irp = ioallocateirp(fileobject->vpb->deviceobject->stacksize, false);

if (irp == null) return status_insufficient_resources;

if(fileobject->deviceobject->flags & do_buffered_io)

else

mmbuildmdlfornonpagedpool(irp->mdladdress);

}keinitializeevent(&kevent, synchronizationevent, false);

irp->userevent = &kevent;

irp->useriosb = iostatusblock;

irp->requestormode = kernelmode;

irp->flags = irp_write_operation;

irp->tail.overlay.thread = psgetcurrentthread();

irp->tail.overlay.originalfileobject = fileobject;

irpsp = iogetnextirpstacklocation(irp);

irpsp->majorfunction = irp_mj_write;

irpsp->minorfunction = irp_mn_normal;

irpsp->flags=sl_force_direct_write;

//重要,vista及以後必須加上該標誌才行

irpsp->deviceobject = fileobject->vpb->deviceobject;

irpsp->fileobject = fileobject;

irpsp->parameters.write.length = length;

irpsp->parameters.write.byteoffset = *byteoffset;

iosetcompletionroutine(irp, iocompletionroutine, null, true, true, true);

ntstatus = iocalldriver(fileobject->vpb->deviceobject, irp);

if (ntstatus == status_pending)

kewaitforsingleobject(&kevent, executive, kernelmode, true, null);

return iostatusblock->status;

} ntstatus

iocompletionroutine(

in pdevice_object deviceobject,

in pirp irp,

in pvoid context)

iofreeirp(irp);

return status_more_processing_required;

}關鍵就在那個標誌,其它都一樣的,沒什麼好說的啦~~

關於Vista Win7系統中IE快取位置

在xp版ie7中,ie快取資料夾都在 temporary internet files tif 中,非常直接。但是,在vista中,這些資料夾的未知諱莫如深,都是因為保護模式的緣故 xp版ie7沒有這個功能 在保護模式下,ie7 實際上是執行在低許可權程序中,只能在low版本的快取資料夾 cooki...

centos7系統下掛載磁碟

一 準備 centos7雲主機一台 50g雲硬碟 雲硬碟掛載到雲主機上 二 掛載磁碟 1.1檢視新磁碟 root cgsl fdisk l 1找到新新增的磁碟的編號為 dev vdc 1.2硬碟分割槽 進入fdisk模式 root cgsl sbin fdisk dev vdc 1輸入n進行分割槽 ...

centos7系統下掛載磁碟

centos7系統下掛載磁碟 原創cuigelasi 最後發布於2017 02 06 15 02 47 閱讀數 17201 收藏 展開一 準備 centos7雲主機一台 50g雲硬碟 雲硬碟掛載到雲主機上 二 掛載磁碟 1.1檢視新磁碟 root cgsl fdisk l 1找到新新增的磁碟的編號為...