linkwander
驱动牛犊
驱动牛犊
  • 注册日期2007-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分400分
  • 威望41点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
阅读:1906回复:7

删除文件加密标志(尾部)

楼主#
更多 发布于:2008-03-12 13:44
各位大虾:我现在是想在接收到IRP_MJ_CREATE中,删除处于文件末尾的加密标志?不知道采用何种方法,希望斑竹们和大虾们,能指点一二,非常感谢!


PS:现已可以读取到文件末尾的加密标志
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2008-03-12 14:29
直接设置长度,把它干掉
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
linkwander
驱动牛犊
驱动牛犊
  • 注册日期2007-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分400分
  • 威望41点
  • 贡献值0点
  • 好评度40点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-03-16 12:06
引用第1楼znsoft于2008-03-12 14:29发表的  :
直接设置长度,把它干掉


谢谢znsoft的方法;

如何设置长度?通过自己发送IRP请求,还是使用zw**函数系列?
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-03-19 01:32
都可以,MINIFILTER中很简单FltSetInformationFile
abc13271552
驱动小牛
驱动小牛
  • 注册日期2007-08-13
  • 最后登录2023-12-05
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望552点
  • 贡献值0点
  • 好评度160点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于: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;
}
驱网无线,快乐无限
goodone
驱动牛犊
驱动牛犊
  • 注册日期2007-01-30
  • 最后登录2014-04-30
  • 粉丝3
  • 关注0
  • 积分372分
  • 威望174点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-05-25 11:12
引用第4楼abc13271552于2008-03-27 18:20发表的  :
BOOLEAN FilemonClearFileFlag(
                           IN PFILE_OBJECT FileObject                    
                           )
{

.......


这个方法好像太暴力啦,并且可能会引起新的问题
哪位大牛能给个别的方法了
栀子花驿站 www.zhizihua.com
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-05-25 14:35
FltQueryInformationFile()然后FltSetInformationFile()行不行?
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-05-26 13:00
引用第1楼znsoft于2008-03-12 14:29发表的  :
直接设置长度,把它干掉


请教,是否有办法,设置文件长度后,不引起脏页面回写磁盘?
游客

返回顶部