阅读:1906回复:7
删除文件加密标志(尾部)
各位大虾:我现在是想在接收到IRP_MJ_CREATE中,删除处于文件末尾的加密标志?不知道采用何种方法,希望斑竹们和大虾们,能指点一二,非常感谢!
PS:现已可以读取到文件末尾的加密标志 |
|
沙发#
发布于:2008-03-12 14:29
直接设置长度,把它干掉
|
|
|
板凳#
发布于:2008-03-16 12:06
引用第1楼znsoft于2008-03-12 14:29发表的 : 谢谢znsoft的方法; 如何设置长度?通过自己发送IRP请求,还是使用zw**函数系列? |
|
地板#
发布于:2008-03-19 01:32
都可以,MINIFILTER中很简单FltSetInformationFile
|
|
地下室#
发布于:2008-03-27 18:20
BOOLEAN FilemonClearFileFlag(
IN PFILE_OBJECT FileObject ) { PFSRTL_COMMON_FCB_HEADER pfcb; //去掉尾部标识,文件长度相应减少.会引起脏页回写(忘了) KeEnterCriticalRegion(); if( ExAcquireResourceExclusiveLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->Resource, FALSE)){ if( ExAcquireResourceExclusiveLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->PagingIoResource, FALSE)){ //更改文件长度 pfcb = (PFSRTL_COMMON_FCB_HEADER) FileObject->FsContext; pfcb->FileSize.QuadPart -= 256; pfcb->ValidDataLength.QuadPart -= 256; ExReleaseResourceLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->PagingIoResource ); } ExReleaseResourceLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->Resource ); } KeLeaveCriticalRegion(); return TRUE; } |
|
|
5楼#
发布于:2008-05-25 11:12
引用第4楼abc13271552于2008-03-27 18:20发表的 : 这个方法好像太暴力啦,并且可能会引起新的问题 哪位大牛能给个别的方法了 |
|
|
6楼#
发布于:2008-05-25 14:35
FltQueryInformationFile()然后FltSetInformationFile()行不行?
|
|
7楼#
发布于:2008-05-26 13:00
引用第1楼znsoft于2008-03-12 14:29发表的 : 请教,是否有办法,设置文件长度后,不引起脏页面回写磁盘? |
|