selph
selph
发布于 2021-11-23 / 484 阅读
0
1

微文件过滤驱动初见

微文件过滤驱动MiniFiliter:可用于监控文件所有相关的操作

这个驱动的创建和NT式的驱动不太一样,这个驱动创建好就是现成的框架代码,改改就能用了,很方便

环境:VS2019,Windows7 x64虚拟机

DriverEntry里设置的回调函数把要设置的内容剪切出来:

    { IRP_MJ_READ,
      0,
      FsFilter1PreOperation,	// 这里是事前执行的回调,可以进行拦截操作
      FsFilter1PostOperation },	// 这里是事后执行的回调,只能进行j

    { IRP_MJ_WRITE,
      0,
      FsFilter1PreOperation,
      FsFilter1PostOperation },

进入FsFilter1PreOperation函数体内,最下面添加如下代码:

    UCHAR MajorFunction = Data->Iopb->MajorFunction;
    PFLT_FILE_NAME_INFORMATION lpNameInfo = NULL;
    // 获取结构
    status = FltGetFileNameInformation(Data, FLT_FILE_NAME_NORMALIZED | FLT_FILE_NAME_QUERY_DEFAULT, &lpNameInfo);
    if (NT_SUCCESS(status)) {
        // 解析结构
        status = FltParseFileNameInformation(lpNameInfo);
        if (NT_SUCCESS(status)) {
            if (MajorFunction == IRP_MJ_READ) {
                DbgPrint("[IRP_MJ_READ:%wZ]\r\n", lpNameInfo->Name);
            }
            if (MajorFunction == IRP_MJ_WRITE) {
                DbgPrint("[IRP_MJ_WRITE:%wZ]\r\n", lpNameInfo->Name);
            }
        }
    }

修改inf文件的Class和Class GUID,以及海拔,编译出来拖入Windows7右键inf文件安装

然后通过cmd进行加载以及停止驱动,命令:

sc start DriverName
sc stop  DriverName

image-20211123105530339

可以看到系统已经在刷日志了:

image-20211123105555596

miniFiliter已经跑起来了


评论