Перехват выполнения процесса в драйвере NT - PullRequest
3 голосов
/ 21 июня 2010

Я разработал драйвер для Windows XP, который может контролировать выполнение процессов.

Функция обратного вызова получает уведомления, используя стандартный WDK API (PsSetCreateProcessNotifyRoutine).

Затем драйверрешает, должен ли процесс быть авторизован или нет;если нет, он должен заблокировать его выполнение / убить его.

Какой самый чистый способ перехватить выполнение таким образом?Я не против, если это не задокументировано, но я бы не стал прибегать к перехвату, если это возможно.

Ответы [ 2 ]

1 голос
/ 23 июля 2010

PsSetCreateProcessNotifyRoutineEx (Vista +) позволит вам вызвать сбой операции создания процесса, изменив элемент CreateInfo-> CreationStatus на код ошибки NTSTATUS.

1 голос
/ 21 июня 2010

Хорошо, согласно этому документу:

http://download.microsoft.com/download/4/4/b/44bb7147-f058-4002-9ab2-ed22870e3fe9/Kernal%20Data%20and%20Filtering%20Support%20for%20Windows%20Server%202008.doc

Мне нужно установить минифильтр для IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION и проверить на PageProtection == PAGE_EXECUTE.

...