Hook & bloquer des applications

kayamel Messages postés 4 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 14 novembre 2007 - 12 nov. 2007 à 16:59
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 - 14 nov. 2007 à 21:08
Bonjour,

J'aimerai savoir comment on fait pour detecter les lancements d'applications pour en interdire le lancement à certaines.

Les deux méthodes que j'ai trouvé sont soit de surveiller la liste des processus ou de détecter les fenêtres principales ouvertes sur des intervalles de temps mais je préfèrerais avoir une méthode qui ne tourne pas continuellement.

Merci.

14 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 nov. 2007 à 21:14
SetWindowsHookEx

ciao...
BruNews, MVP VC++
0
kayamel Messages postés 4 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 14 novembre 2007
13 nov. 2007 à 08:51
Je te remercie de ta réponse.
En fait j'avais déjà trouvé celui-ci mais dans tous les morceaux de code que j'ai trouvé, ils identifient l'application par le nom de la fenêtre. Est-ce que c'est le même code si l'application n'a pas de fenêtre ? (Ni de fenêtres cachées)

Merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 nov. 2007 à 11:32
hook WH_CBT

dans la DLL au DLL_PROCESS_ATTACH:
- GetModuleFilename
- Si est nom exe interdit alors ExitProcess()

ciao...
BruNews, MVP VC++
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
13 nov. 2007 à 23:45
Bonjour BruNews,

Je suis sur le même projet que kayamel, dans le cadre de notre scolarité. Voyant que kayamel n'arrive pas à ses fins, je me suis souvenu que j'avais commencé à explorer quelques pistes pour la réalisation de ce genre d'application.

Tu m'avais répondu "Ouvre un handle en exclusif sur chacun et personne d'autre ne pourra accéder." Peut être que cette solution serait plus simple, mais peux-tu un peu plus expliquer?

Merci

Have Fun ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 nov. 2007 à 00:09
hflNIET = CreateFile(szInterdit, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);

tant que le prog qui a ouvert szInterdit tourne, personne n'y accèdera.

ciao...
BruNews, MVP VC++
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
14 nov. 2007 à 00:44
Hum je comprend pas trop!

Imaginon que je souhaite interdire le lancement de paint sur le poste client. Je lance une application qui contien:



hflNIET = CreateFile(szInterdit, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);

avec szInterdit = "paint.exe" ?
szInterdit = idaplication ?

??

Notre prof nous a dit que un des meilleur moyen de reconnaîte une
application est de récupérer son ID. Car le seul moyen de modifier
cette id, serait de recompiler le programme.

Désolé, sa devient assez compliqué donc on a un peu de mal à comprendre! (et si on arrive pas, on finira par scruter la liste de processus, toutes les secondes, pour killer paint.exe s'il apparaît dans la liste, ce que nous pensons ne pas être la meilleur des solutions!)

Merci de ton aide

Have Fun ...
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
14 nov. 2007 à 00:48
Et on a pas précisé que l'executable n'est pas forcement sur la machine, mais peut être installé à tout moment!

Have Fun ...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 nov. 2007 à 00:53
S'il y a trop d'aléas, voir administrateur system qui mettra en place les stratégies de sécurité en procédant à l'inverse: ne pourront être lancés que les progs autorisés.

ciao...
BruNews, MVP VC++
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
14 nov. 2007 à 01:12
Je suis d'accord avec cette solution, le problème c'est qu'on nous a demandé de créer un service qui interdit l'execution de certaine application. Ce service on doit le programmer dans un but pédagogique!

Et moi au début qui pensé que sa allé être tout simple :(

Have Fun ...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 nov. 2007 à 01:28
La solution ultime, hooker ZwCreateProcess() mais gaffe à ne pas faire d'erreurs de prog.

ciao...
BruNews, MVP VC++
0
bobybx Messages postés 18 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 4 mars 2008
14 nov. 2007 à 10:52
Bonjour,

je prends en cours car cette discussion m'interesse également puisqu'il serait interessant de bloquer un programme à son lancement.

Si quelqu'un a un tuto, ou même un semblant de code sur le hook d'un createprocess, ce sera avec plaisir.
Les sources sur le net ne sont pas abondantes à ce sujet, contrairement aux hooks souris ou claviers
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 nov. 2007 à 12:25
Ici exemple de hook sur fonction du system:
CACHER PROCESSUS AU CHOIX (DRIVER WIN32)
http://www.cppfrance.com/code.aspx?ID=36941

ciao...
BruNews, MVP VC++
0
kayamel Messages postés 4 Date d'inscription mercredi 8 mars 2006 Statut Membre Dernière intervention 14 novembre 2007
14 nov. 2007 à 20:50
Merci pour tes réponses.

Je vais laisser Abdoulax ruminer tous ça...
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
14 nov. 2007 à 21:08
LOL, abdoulax a abandonné, et en tant que chef de projet  et ayant atteint la date limite de cette solution dans le GANT , j'ai décidé de faire la méthode qui consiste à scanner la liste des processus toutes les secondes. Mais au moins, sa nous a permis de faire des recherches sur le hook et aussi pour certain de le découvrir .

En tout cas, merci !

Have Fun ...
0
Rejoignez-nous