Я занимаюсь разработкой приложения безопасности, которое должно отслеживать активность любого процесса.
Мне удалось перехватить доступ к файлу, установив драйвер MiniFilter, благодаря образцу MiniFilter, предоставленному Microsoft на GitHub .
Однако я не нашел никакой документации о том, как перехватить процесс создание / завершение с помощью минифильтра.
Я бы хотел перехватить создание нового процесса с помощьюлюбой родительский процесс (который может использовать такие функции, как CreateProcess, ShellExecute и т. д.).
Я также хотел бы перехватывать сигналы завершения процесса (отправляемые такими API-интерфейсами, как TerminateProcess ), чтобы избежать процесса моей программы безопасностибыть убитым потенциальным вредоносным ПО.
В данный момент я настраиваю функцию обратного вызова в своем драйвере минифильтра, которая успешно перехватывает операции ввода-вывода файлов, как указано в примере Microsoft:
FLT_POSTOP_CALLBACK_STATUS ScannerPostCreate (
_Inout_ PFLT_CALLBACK_DATA CallbackData,
_In_ PCFLT_RELATED_OBJECTS FltObjects,
_In_opt_ PVOID CompletionContext,
_In_ FLT_POST_OPERATION_FLAGS Flags
)
У меня вопрос, могу ли я использоватьта же функция обратного вызова для перехвата доступа к процессу? Или мне нужно настроить другую функцию обратного вызова или использовать совершенно другой метод?