Сообщение IRP_MJ_CREATE, минифильтр. Как отличить именно СОЗДАНИЕ файл от 03.01.2018 8:49
Изменено 03.01.2018 8:49 sergey77666
IRP_MJ_CREATE, минифильтр. Как отличить именно СОЗДАНИЕ файлов
Вот такой код. Должно "лететь" только создание фаЯснйлов в обычном понимании.
Не папок.
И не открытие, а именно создание.
Но летит это всё.
Ясно, что нужно еще что-то проверять. Может кто подскажет? Желательно именно в Pre-, хотя в данном случае подошел бы и Post-.
С хуками SSDT работал, была эта проблема. Ладно, перешел на фильтры — и опять она. Неужели нельзя было хоть одно нормальное API сделать, хосспидя-ты-бозезьмой...
Не папок.
И не открытие, а именно создание.
Но летит это всё.
Ясно, что нужно еще что-то проверять. Может кто подскажет? Желательно именно в Pre-, хотя в данном случае подошел бы и Post-.
С хуками SSDT работал, была эта проблема. Ладно, перешел на фильтры — и опять она. Неужели нельзя было хоть одно нормальное API сделать, хосспидя-ты-бозезьмой...
FLT_PREOP_CALLBACK_STATUS
PreFileOperationCallback (
__inout PFLT_CALLBACK_DATA Data,
__in PCFLT_RELATED_OBJECTS FltObjects,
__deref_out_opt PVOID *CompletionContext
) {
PFILE_OBJECT FileObject;
if(FLT_IS_FS_FILTER_OPERATION(Data))
{
return FLT_PREOP_SUCCESS_NO_CALLBACK;
}
if (FltObjects->FileObject != NULL && Data != NULL) {
FileObject = Data->Iopb->TargetFileObject;
if(FileObject != NULL && Data->Iopb->MajorFunction == IRP_MJ_CREATE)
{
// здесь еще проверка FltObjects->FileObject->FileName на NULL и его логирование
}
}
return FLT_PREOP_SUCCESS_NO_CALLBACK;
}
IRP_MJ_CREATE, минифильтр. Как отличить именно СОЗДАНИЕ файл
Вот такой код. Должно "лететь" только создание файлов в обычном понимании.
Не папок.
И не открытие, а именно создание.
Но летит это всё.
Ясно, что нужно еще что-то проверять. Может кто подскажет? Желательно именно в Pre-, хотя в данном случае подошел бы и Post-.
С хуками SSDT работал, была эта проблема. Ладно, перешел на фильтры — и опять она. Неужели нельзя было хоть одно нормальное API сделать, хосспидя-ты-бозезьмой...
Не папок.
И не открытие, а именно создание.
Но летит это всё.
Ясно, что нужно еще что-то проверять. Может кто подскажет? Желательно именно в Pre-, хотя в данном случае подошел бы и Post-.
С хуками SSDT работал, была эта проблема. Ладно, перешел на фильтры — и опять она. Неужели нельзя было хоть одно нормальное API сделать, хосспидя-ты-бозезьмой...
FLT_PREOP_CALLBACK_STATUS
PreFileOperationCallback (
__inout PFLT_CALLBACK_DATA Data,
__in PCFLT_RELATED_OBJECTS FltObjects,
__deref_out_opt PVOID *CompletionContext
) {
PFILE_OBJECT FileObject;
if(FLT_IS_FS_FILTER_OPERATION(Data))
{
return FLT_PREOP_SUCCESS_NO_CALLBACK;
}
if (FltObjects->FileObject != NULL && Data != NULL) {
FileObject = Data->Iopb->TargetFileObject;
if(FileObject != NULL && Data->Iopb->MajorFunction == IRP_MJ_CREATE)
{
// здесь еще проверка FltObjects->FileObject->FileName на NULL и его логирование
}
}
return FLT_PREOP_SUCCESS_NO_CALLBACK;
}