Я пишу драйвер минифильтра, который предназначен для предотвращения записи в PE-файлы. Я проверяю содержимое файла в обратном вызове после создания. Если формат совпал, я пытаюсь вызвать FltCancelFileOpen
и вернуть STATUS_ACCESS_DENIED
.
Но это можно взломать, открыв файл с CreateDisposition = FILE_OVERWRITE/FILE_OVERWRITE/FILE_SUPERSEDE
. В этом случае файл уже усекается в момент вызова post-create-callback.
Как это преодолеть?