2010-06-21 2 views
3

J'ai développé un pilote pour Windows XP qui est capable de surveiller l'exécution des processus.Interception de l'exécution du processus dans un pilote NT

Une fonction de rappel reçoit les notifications à l'aide de l'API WDK standard (PsSetCreateProcessNotifyRoutine).

Le conducteur décide alors si le processus devrait être autorisé ou non; sinon, il doit bloquer son exécution/le tuer.

Quel est le moyen le plus propre d'intercepter l'exécution de cette façon? Cela ne me dérange pas si ce n'est pas documenté, mais je préférerais ne pas avoir recours à l'accrochage, si possible.

Répondre

1

Ok, selon ce document:

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

J'ai besoin d'installer un minifiltres pour IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION et vérifier PageProtection == PAGE_EXECUTE. PsSetCreateProcessNotifyRoutineEx (Vista +) vous permettra de provoquer l'échec de l'opération de création de processus en modifiant le membre CreateInfo-> CreationStatus en un code d'erreur NTSTATUS.

1

+0

Vista RTM ne prend pas en charge PsSetCreateProcessNotifyRoutineEx (mise à niveau vers SP1) – unixman83