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找到新新增的磁碟的編號為...