-
-
[求助]minifilter过滤驱动引起页错误 毫无头绪
-
发表于: 2021-7-19 22:57 4301
-
用minifilter写了个文件重定向的程序,但在运行时却出现了页错误。下图为详细信息。毫无头绪,因此来求助各位大佬。
正常函数调用应该是到0x***1000,但蓝屏的时候看栈,调用的地址是0x***0xxx(要往前一点)
FLT_PREOP_CALLBACK_STATUS LocalBoost2PreOperation ( _Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext ) { if (length != 0) { NTSTATUS status; UNREFERENCED_PARAMETER(FltObjects); UNREFERENCED_PARAMETER(CompletionContext); PT_DBG_PRINT(PTDBG_TRACE_ROUTINES, ("LocalBoost2!LocalBoost2PreOperation: Entered\n")); __try { PFLT_FILE_NAME_INFORMATION fileNameInfos; status = FltGetFileNameInformation(Data, FLT_FILE_NAME_NORMALIZED, &fileNameInfos); for (size_t i = 0; i < length; i++) { if (RtlEqualUnicodeString(&(source[i]), &(fileNameInfos->Name), FALSE)) { Data->Iopb->TargetFileObject->FileName.Buffer = goal[i].Buffer; Data->Iopb->TargetFileObject->FileName.Length = goal[i].Length; Data->Iopb->TargetFileObject->FileName.MaximumLength = goal[i].MaximumLength; Data->IoStatus.Information = IO_REPARSE; Data->IoStatus.Status = STATUS_REPARSE; Data->Iopb->TargetFileObject->RelatedFileObject = NULL; FltSetCallbackDataDirty(Data); return FLT_PREOP_COMPLETE; } } FltReleaseFileNameInformation(fileNameInfos); } __except (EXCEPTION_EXECUTE_HANDLER) { return FLT_PREOP_SUCCESS_NO_CALLBACK; } } return FLT_PREOP_SUCCESS_WITH_CALLBACK; }
上面是被跳转到的函数,有两个字符串数组souce和goal,存需要重定向的文件路径,length存这两个数组的长度。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2021-7-20 20:32
被Billraozihan编辑
,原因:
赞赏
他的文章
- [求助][下载]编辑UEFI变量提示超出范围? 1513
- [求助]包含多个中断的程序执行有概率会错 3275
- [求助]关于dll和exe的全局变量 5463
- 如何去掉右键分区里的格式化选项? 4414
- [求助]sfilter文件重定向失败 7783
看原图
赞赏
雪币:
留言: