Scanner le registre en temps réel

[Résolu]
Signaler
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
-
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010
-
Violent Ken

Salut !
Comment est-ce qu'on pourrait faire pour surveiller toutes les opérations faites sur la base de registre ? Comment créer un *.log qui donne les informations de quel programme a lu/créé/écrit dans telle ou telle clé à quelle heure (en analysant les entrées/sorties du registre en temps réel) ?
Merci,@+

17 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Tiens jette un oeil ici pour t'en convaincre, il y a une description sommaire du fonctionnement logiciel.
http://www.sysinternals.com/Utilities/Regmon.html

ciao...
BruNews, MVP VC++
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 82 internautes nous ont dit merci ce mois-ci

Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Salut a tous,
Eh bin c'est impossible mais je l'ai fais lol
Il ne suvrveille pas toutes les cles mais en surveille deja plus de 400
je suis encore entrain de le paufiner il est pas dutout fini mais il est deja operationnel
http://www.keohosting.net/system/images/SetupReg-Notify.zip
A ne tester que sous XP car les cles surveillees lui sont propre!

@+

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 82 internautes nous ont dit merci ce mois-ci

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Pas du sport pour vb tout cela, il faut faire un driver d'interception des appels au service registres.

ciao...
BruNews, MVP VC++
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Violent Ken

Ola !!
Qu'est ce que c'est que çà? C'est vraiment impossible en VB ?
@+
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Eh oui, comme tout ce qui est prog systeme.

ciao...
BruNews, MVP VC++
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Violent Ken

Ok. Bah au moins c'est clair.
@+
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Violent Ken

Uhm. Oui, effectivement.
Bah en tout cas merci pour l'info, et merci d'avoir répondu si rapidement.
@+
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
En restant en mode user on ne capte ni ce qui est modifié par service system ni (encore moins) par driver, ni etc...

Avec un driver qui change les imports table, on n'a pas à s'occuper de clé spécifique ou non et TOUT sera intercepté. C'est la seule voie à suivre pour un monitoring complet de la BDR.

ciao...
BruNews, MVP VC++
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Salut Brunews,
Eh as tu teste le soft ? Pcq je vois pas le rapport la methode utilisee est RegNotifyChangeKeyValue et quelque soit le processus qui modifie la cle la modification est notifiee!
De plus par securite il fais un dernier scan a la fermeture de Windows( mais bon hors sujet)
Maintenant il est clair que la methode que tu suggere est bien plus efficace et tout et tout...
Mais comme tu le dis on ne peux pas le faire en VB6 (enfin suis pas sur mais bon)
Mais le truc c'est que je suis pas sur que scanner toute la ndr soit utile a partir du moment ou on sait les cles que l'on veut surveiller...
Perso je suis un gros amateur en programation et mon soft jusque la fonctionne relativement bien, donc j'ose meme pas imaginer ce qu' un programmeur comme toi ou EB aurait pu faire en vb6...

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
violent_ken a demandé un log de toute la BDR, avec RegNotifyChangeKeyValue ça monopolise beaucoup trop de ressources system.
La modif import table a l'énorme avantage de ne pas avoir à scanner la BDR, on reçoit les params de tout module tentant accès à la BDR et ainsi on a juste à lire ce qui se trouvait à l'endroit ciblé et ce qui va s'y mettre, rien de plus.
A part quelques lignes pour démo d'une dll, je ne fais jamais de prog en vb, c'est trop lent, trop limité et non distribuable sans des tonnes de runtime.

ciao...
BruNews, MVP VC++
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Yep tu as raison sur pas mal de points.

Mais pour moi si il veut surveiller la bdr c'est quand meme dans un but de securite non ?
(enfin je vois pas d'autres raison)
donc on doit quand meme savoir ce que l'on veut intercepter, meme via ta methode, donc c'est vrai tu ne devra pas scanner la cle, pour savoir laquelle de ses valeurs a ete modifiee mais tu devra quand meme verifier si c'est a une cle de ta liste qu'on veut acceder, et le fait qu'il y des acces sans cesse a la bdr, je suis pas sur que ton code ne finisse pas pas tourner a 100 % cpu non stop...
Tandis que avec ma methode la consomation cpu est de 0% tant que une des cle que l'on surveille n'est pas modifiee
Now si j'avais pu, je l'aurai fais en C mais on fais pas ce qu'on veut :(

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Un driver est mappé une seule fois dans le system et son code est appelé quand les events pour lesquels il s'est enregistré interviennent, rien de plus.

ciao...
BruNews, MVP VC++
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Eh la je comprends pas trop mais je te crois sur parole et je m'incline ;)
Mais je jetterai pas mon soft a la poubelle na! lol
Desole pour la perte de temps occasionnee
@+ et bonne prog

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Violent Ken

Salut !
J'étais pas là ce samedi, j'arrive que maintenant...
>draluorg : j'ai réléchargé ton programme, et je l'essaierai demain, promis. C'est bien pour un "but de sécurité" que je cherchais à faire çà. Cela dit, Brunews a raison, avec la méthode (un peu obscure pour moi) du driver, on scanne chaque entrée/sortie, sans avoir de "liste" établie des clés à vérifier. Toutes les clés sont "scannées" en temps réel. Et on ne sait pas rééllement ce que l'on veut scanner avant d'avoir scanné, on cherche plutôt à établir la liste de toutes les clés utilisées par tel ou tel programme etc..
Et je ne pense pas que çà bouffe 100% d'UC, bien que VB soit lent (d'ailleurs c'est pas sur que ce soit possible en VB..).
Enfin, en tout cas, je vais voir la source demain, merci pour le lien !
Merci pour vos réponses, @+
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Salut Violent Ken,

Eh bin en fait je ne sais pas si tu as essaye Regmon de Systernals (le lien de BruNews) mais cela confirme un peu ma theorie.
Si tu intercepte toutes modification tu vas devoir envoyer msgbox sur msgbox!
Je travail en ce moment avec une equipe de professionnel de la securite informatique, qui font des recherches tous les jours sur les cles utilisees pas les Malware etc...
En fait il faut bien se dire que une Bdr sous XP fais minimum 30 Mo (grand minimum) parfois jusqu'a 100 Mo!
Je te laisse compter le nombre de cles...
Alors que en comptant les cles policy (cles de restriction systeme qui n'existent pas par defaut) + les cles succeptibles (Run, param IE, Winlogon, shell\command etc...) on arrive a un grand maximum de 600 cles.
De plus, tu ne peux pas afficher la meme alerte pour un redimesionnement de fenetre qui serait enregistrer dans la bdr (genre Window Placement de IE) que pour un soft qui s'enregistre pour se lancer au demarrage de Windows.
Donc que ce soit en C via la methode comseille pas BruNews ou en vb selon ma methode, tu es quand meme oblige de referencer tes cles.
Remarque, tu peux tjs essayer selon la methode de EbAtrSoft en interceptant RegOpenKey RegOpenKeyEx RegSetValue etc.. mais je te souhaite dans ce cas bien du courrage lol
Desole pour le roman ms la bdr est un sujet qui me passionne :)
@+

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Violent Ken


Salut !
J'ai en effet essayé Regmon, et oui, le nombre de clés modifiées chaque seconde est impressionnant. Il faut, bien entendu, savoir exploiter ces résultats, (par exemple voir les 500 clés auquelles a accédé un programme suspect), mais l'avantage est de pouvoir "entièrement" surveiller sa bdr. Cela dit, les logiciels antispyware temps réel (tea timer , ad-watch) ne scrutent que certaines clés. Donc la méthode "suffit" largement pour pouvoir monter un prog. de sécurité. Encore faut-il savoir quelles clés surveiller...
@+
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Re,
Exactement ;)
Mais le Tea-Timer de Spybot n'est pas vraiment une refence a prendre, et a l'heure actuelle, sa surveillance de la bdr n'est plus du tout suffisante de memoire je pense qu'il ne surveille que 28 valeurs...
Tu trouvera deja + 400 cles dans mon soft ouvre le fichier .lst avec notepad ;)
Pour le reste il faut faire de longues et fastideuses recherches...

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...