-
-
[求助]FltGetFileNameInformation 问题
-
发表于:
2018-9-4 01:44
4476
-
[求助]FltGetFileNameInformation 问题
UNICODE_STRING* MiniFilter_Monitor::Get_File_Path(PFLT_CALLBACK_DATA Data)
{
VMProtectBeginUltra("Get_File_Path");
NTSTATUS status;
PFLT_FILE_NAME_INFORMATION file_name = nullptr;
status = FltGetFileNameInformation(Data, FLT_FILE_NAME_NORMALIZED | FLT_FILE_NAME_QUERY_DEFAULT, &file_name);//
if (NT_SUCCESS(status))
{
FltParseFileNameInformation(file_name); //补全信息
DbgPrint("扫描位置: %wZ \n", file_name->Name);
UNICODE_STRING *temp = new UNICODE_STRING();
temp->Length = file_name->Name.Length;
temp->MaximumLength = file_name->Name.MaximumLength;
temp->Buffer = (WCHAR*)new char[file_name->Name.MaximumLength];
RtlCopyMemory(temp->Buffer, file_name->Name.Buffer, file_name->Name.MaximumLength);
FltReleaseFileNameInformation(file_name);
return temp;
}
VMProtectEnd();
return nullptr;
}
FltGetFileNameInformation返回的信息里只有路径,没有文件名
正常情况应该类似这种:\Device\HarddiskVolume2\others\MyFireWall.exe:Raec25ph4sudbf0hAaq5ehw3Nf
现在所有I/O操作返回都是这样的:\Device\HarddiskVolume2\others\
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课