-
-
[求助]FltGetFileNameInformation 问题
-
发表于:
2018-9-4 01:44
4475
-
[求助]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\
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)