Registry guard beta

Description

Registry Guard est un programme très proche de Regmon de Sysinternals (http://www.sysinternals.com/Utilities/Regmon.html), il permet de visualiser les tentatives d'accés à la registry (Lecture, Ouverture, Création) en temps réel, mais il possédera plus de fonctionnalités que ce-dernier plus tard (notamment une fonctionnalité réseau).

Ce programme est composé d'une DLL codée en C qui permet le hook des fonctions RegCreateKeyEx, RegOpenKeyEx, et RegQueryKeyEx (d'autre fonctions sont à venir...); c'est le moteur du programme. Grâce à la fonction API de hook, cette DLL est executée dans chaque programme actifs, modifie la table d'import de ces programme et les adresses des API de la registry afin de les détourner vers les fonctions de la DLL. Ensuite, la seconde partie du programme est en réalité le programme principal (comprenant la GUI), qui reçoit les messages d'alerte envoyés par la DLL et affiche les tentatives d'accés à la registry. Ces deux parties sont donc totalement complémentaires.

Pour plus d'informations concernant la technique de hook utilisée et son fonctionnement ; des sources sont disponibles sur ce site et un article sur le PE Header (avec l'IAT) pourra vous éclairer : http://olance.developpez.com/articles/windows/pe-iczelion/import-table/

Ce programme n'est qu'une ébauche, plusieurs fonctionnalités sont à venir...

Source / Exemple :


// Cf .ZIP pour le code source

Conclusion :


Programme testé sous Windows XP SP1/SP2 et Windows Vista.
Compilé sous Visual Studio 2005.

Attention cependant, un bug persiste : lorsqu'on est en train d'utiliser MSN Messenger avec Registry Guard en mode actif ; MSN plante, je n'ai pas encore eu le temps de regarder ce bug.

Second bug (minime) : si vous lancez un programme avec RG activé, les API registry seront logguées, mais si vous désactivez RG et que le programme tente d'accéder à la base de registre par la suite, ce-dernier plantera, vu que les adresses originales des API ont été remplacées par celles des fonctions de la DLL et que celle-ci n'est plus présente. Vous pouvez le corriger par vous même, grâce à ma fonction MakeHook que vous appellerez dans DLL_PROCESS_DETACH, afin ques les bonnes adresses soient réaffectées dans l'IAT. Malgré que cette mise à jour soit rapide, je n'ai pas eu le temps de la faire.

Un fichier binaire est présent (.EX_ dans /RG _GUI/Bin).

Je mettrai prochainement en ligne un .ZIP contenant les deux projets Visual Studio complets pour la DLL et RG, pour une compilation rapide et facile.
Pour plus d'infos, faire parvenir des bugs, ou si vous souhaitez être informé lors de la sortie d'une nouvelle version, voici mon mail : touron.guillaume@gmail.com

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.