Je me souviens d'être tombé sur un article sur CodeProject il y a quelques temps concernant un antivirus ou un anti-malware qu'un type écrivait. Il s'était branché sur l'API de Windows pour être capable d'attraper chaque fois qu'un nouveau processus était lancé et demandait à l'utilisateur avant de permettre au processus de démarrer.
Je n'arrive plus à trouver l'article, et j'aimerais en fait pouvoir mettre en œuvre quelque chose comme ça. Actuellement, nous avons un navigateur personnalisé construit sur Gecko auquel nous avons intégré des restrictions d'accès aux sites en fonction des niveaux de sécurité de nos employés internes, etc. Nous empêchons l'exécution de tout autre navigateur à l'aide d'une minuterie et d'un appel à Process.GetProcessesByName() à partir d'une liste des navigateurs que nous n'autorisons pas.
Ce que nous voulons, c'est qu'au lieu de simplement bloquer ces navigateurs, où il y a un petit délai entre le démarrage de l'autre navigateur et sa destruction par notre service, nous aimerions pouvoir afficher une boîte de dialogue au lieu du lancement du processus, expliquant que le programme n'est pas dans la liste autorisée. De cette façon, nous pouvons générer une liste de processus "autorisés" et bloquer tout le reste (nous n'avons pas encore eu de problème avec l'installation d'applications externes, mais on n'est jamais trop prudent).
Malheureusement, nous ne programmons pas beaucoup l'API Windows en C#, et je ne sais donc pas par où commencer pour trouver les appels que nous devons accrocher.
Même un simple point de départ sur ce qu'il faut lire serait utile.