【问题标题】:Minifilter Driver - CMD can still delete a fileMinifilter Driver - CMD 仍然可以删除文件
【发布时间】:2018-07-10 17:43:07
【问题描述】:

我正在尝试使用微过滤器阻止对文件 (C:\pass\secret.txt) 的访问。

当我尝试删除此文件时,我按预期收到“拒绝访问消息框”。 但我仍然可以在命令提示符下使用“del”命令删除文件。

命令提示符的作用与我尝试过的 powershell、资源管理器或任何其他程序有何不同?

我看到了这个帖子minifilter-driver-not-blocking-file-edition,但正如我所说,其他所有内容都被阻止了。

FltPreOperationCallback 函数:

FLT_PREOP_CALLBACK_STATUS PtPreOperationPassThrough(_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) {  

NTSTATUS status;

UNREFERENCED_PARAMETER( FltObjects );
UNREFERENCED_PARAMETER( CompletionContext );

if (PtDoRequestOperationStatus(Data)) {
    status = FltRequestOperationStatusCallback(Data, PtOperationStatusCallback, (PVOID)(++OperationStatusCtx));
    if (!NT_SUCCESS(status)) {
        PT_DBG_PRINT(PTDBG_TRACE_OPERATION_STATUS, ("PassThrough!PtPreOperationPassThrough: FltRequestOperationStatusCallback Failed, status=%08x\n", status));
    }
}

if (Data->Iopb->MajorFunction == IRP_MJ_WRITE || Data->Iopb->MajorFunction == IRP_MJ_SET_INFORMATION || Data->Iopb->MajorFunction == IRP_MJ_CREATE) {
    UNICODE_STRING ourFile;
    RtlInitUnicodeString(&ourFile, L"\\pass\\secret.txt");

    if (RtlCompareUnicodeString(&Data->Iopb->TargetFileObject->FileName, &ourFile, FALSE) == 0) {
        DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "PtPreOperationPassThrough: %wZ\n", &Data->Iopb->TargetFileObject->FileName);
        Data->IoStatus.Status = STATUS_ACCESS_DENIED;
        Data->IoStatus.Information = 0;
        return FLT_PREOP_COMPLETE;
    }
}

return FLT_PREOP_SUCCESS_WITH_CALLBACK;
}

【问题讨论】:

  • 驱动器 C 上的文件系统是什么?
  • 如果您关闭所有这些环境并在重新启动它们后重试,差异是否仍然存在?
  • @stark 这是 NTFS (Windows 10 x64 Pro)
  • @Yunnosch 是的。我什至尝试了自己的 C++ 应用程序来删除这个文件,但它被阻止了。

标签: c command-line minifilter


【解决方案1】:

确保检查创建路径中设置的 FILE_DELETE_ON_CLOSE 标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    相关资源
    最近更新 更多