Suivi des modifications dans le registre Windows
Question
Existe-t-il un moyen de suivre les modifications dans le registre Windows? J'aimerais voir quels changements sont apportés au registre lors de l'installation de divers programmes.
La solution
Peut surveiller les modifications du registre apportées par un programme spécifique.
http://www.nirsoft.net/utils/reg_file_from_application.html
UPDATE: Téléchargez simplement NirLauncher (qui inclut toutes les applications de NirSoft). C'est l'un des meilleurs ajouts à votre boîte à outils Windows. http://launcher.nirsoft.net/
Autres conseils
Moniteur de processus permet de surveiller l'activité des fichiers et du registre de divers processus.
À propos de WMI et du registre:
Il existe trois classes d'événements WMI concernant le registre:
- RegistryTreeChangeEvent
- RegistryKeyChangeEvent
- RegistryValueChangeEvent
Classes d'événements du registre
Mais vous devez être conscient de ces limitations:
-
Avec RegistryTreeChangeEvent et RegistryKeyChangeEvent, il n’existe aucun moyen de déterminer directement les valeurs ou les clés réellement modifiées. Pour ce faire, vous devez enregistrer l'état du registre avant l'événement et le comparer à l'état suivant l'événement.
-
Vous ne pouvez pas utiliser ces classes avec des ruches HKEY_CLASSES_ROOT ou HKEY_CURRENT_USER. Vous pouvez résoudre ce problème en créant une classe WMI représentant la clé de registre à surveiller:
Définition d'une classe de registre avec des qualificatifs
et utilisez-le avec les classes dérivées __InstanceOperationEvent.
Donc, utiliser WMI pour surveiller le registre est possible, mais moins que parfait. L'avantage est qu'il est possible de surveiller les changements en «temps réel». Un autre avantage pourrait être l’abonnement permanent aux événements WMI:
Réception d'événements à tout moment
une méthode pour surveiller le registre "à tout moment", c'est à dire. événement si votre application n'est pas en cours d'exécution.
Un moyen simple de procéder sans outils supplémentaires est d’exporter le registre dans un fichier texte avant l’installation, puis de l’exporter dans un autre fichier. Ensuite, comparez les deux fichiers.
Cela dit, les outils Sysinternals sont parfaits pour cela.
Regshot mérite une mention ici. Il analyse et prend un instantané de tous les paramètres du registre, puis vous l'exécutez à nouveau ultérieurement pour le comparer à l'instantané d'origine. Il affiche toutes les clés et les valeurs qui ont été modifiées.
Il existe un python-hids appelé sobek ( http://code.google.com/ p / sobek-hids / ) capable de surveiller certaines parties du responsable de la sécurité. Cela fonctionne très bien pour surveiller les modifications de fichiers et, même si le doc dit qu'il est capable de surveiller les modifications du registre, il ne fonctionne pas pour moi.
Bon logiciel pour afficher facilement les masques basés sur Python.
Il existe différentes manières. Si vous voulez le faire vous-même à la volée, WMI est probablement la voie à suivre. RegistryKeyChangeEvent
et ses parents sont à regarder. Il existe peut-être un moyen de le surveiller via les classes __ InstanceCreationEvent
, __ InstanceDeletionEvent
et __ InstanceModificationEvent
.
http://msdn.microsoft.com/ en-us / library / aa393040 (VS.85) .aspx
Je suis d’accord avec Franci, tous les utilitaires Sysinternals valent la peine d’être examinés (Autoruns est également indispensable) et Process Monitor, qui remplace le bon vieux Filemon et Regmon, est précieux.
En plus de l'utilisation que vous souhaitez, il est très utile de voir pourquoi un processus échoue (comme tenter d'accéder à un fichier ou à une clé de registre inexistante), etc.
PhiLho a mentionné AutoRuns , mais je le pense mérite d'être élaboré.
Il n’analyse pas tout le registre, mais uniquement les parties contenant des références à des éléments à charger automatiquement (fichiers EXE, DLL, pilotes, etc.), ce qui est probablement ce qui vous intéresse. Il ne suit pas les modifications mais peut exporter. dans un fichier texte afin que vous puissiez l'exécuter avant et après l'installation et effectuer un diff .
Lorsque j'utilise une machine virtuelle, j'utilise cette procédure pour inspecter les modifications apportées au registre:
- À l’aide de 7-Zip, ouvrez le fichier vdi / vhd / vmdk et extrayez le dossier C: \ Windows \ System32 \ config
- Exécutez OfflineRegistryView pour convertir le registre en texte brut.
- Définissez le "Dossier de configuration" sur le dossier que vous avez extrait
- Définissez la 'clé de base' sur
HKLM \ SYSTEM
ouHKLM \ LOGICIEL
- Définissez la "Profondeur de la sous-clé" sur "Illimité"
- Appuyez sur le bouton 'Go'
Utilisez maintenant votre programme de diff préféré pour comparer les instantanés «avant» et «après».