mengxp
驱动牛犊
驱动牛犊
  • 注册日期2006-07-11
  • 最后登录2017-07-12
  • 粉丝1
  • 关注1
  • 积分34分
  • 威望243点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分10分
  • 社区居民
阅读:2900回复:1

minifilter中替换PreCreate中DesiredAccess的问题

楼主#
更多 发布于:2012-05-14 11:22

我想禁止读某个文件,可以通过返回ACCESS_DENIED实现
 
但是如果通过修改DesiredAccess实现可不可以呢?
 
比如下面禁止读123456这个文件

if(strstr(asName.Buffer,"123456") > 0)
{
    PCHAR pszImageName = (PCHAR)PsGetCurrentProcess() + ImageFileNameOffset;
    DbgPrint("PreCreate %s -> %s [%08X]\n",pszImageName,asName.Buffer,Data->Iopb->Parameters.Create.SecurityContext->DesiredAccess);
    Data->Iopb->Parameters.Create.SecurityContext->DesiredAccess &= ~FILE_GENERIC_READ;
    FltSetCallbackDataDirty(Data);
    DbgPrint("PreCreate %s -> %s [%08X]\n",pszImageName,asName.Buffer,Data->Iopb->Parameters.Create.SecurityContext->DesiredAccess);
}

这样之后看到dbgview中已经改了DesiredAccess。

但是应用程序依然能读数据。。为啥呢。。
 
禁止读同理不可行。。
 
求做过类似应用的大牛指点。。
mengxp
驱动牛犊
驱动牛犊
  • 注册日期2006-07-11
  • 最后登录2017-07-12
  • 粉丝1
  • 关注1
  • 积分34分
  • 威望243点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分10分
  • 社区居民
沙发#
发布于:2012-05-14 11:51
又是刚贴出来就解决了 。。。

我贴 一下吧还是。。

    Data->Iopb->Parameters.Create.SecurityContext->AccessState->RemainingDesiredAccess &= ~FILE_GENERIC_READ;
游客

返回顶部