Я разрабатываю приложение безопасности, которое должно отслеживать активность любого процесса.
Мне удалось перехватить доступ к файлам, установив драйвер 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
)
Мой вопрос: могу ли я использовать ту же функцию обратного вызова для перехвата доступа к процессу? Или мне нужно настроить другую функцию обратного вызова или использовать совершенно другой метод?