Loading AI tools
base de données utilisée par le système d'exploitation Windows De Wikipédia, l'encyclopédie libre
La base de registre (BDR) est une base de données utilisée par le système d'exploitation Windows. Elle contient les données de configuration du système d'exploitation et des autres logiciels installés désirant s'en servir. Depuis 1998, Microsoft utilise plutôt le terme Registre Windows pour parler de cette base de données.
Le plus souvent, les utilisateurs modifient la base de registre de façon transparente, via une interface graphique. Il existe des cas où aucune interface graphique n'est prévue : il est alors nécessaire d'utiliser l'outil Regedit, mais dans ce cas, il n'y a pas de garde-fou, le logiciel ne vérifie aucun des paramètres modifiés par l'utilisateur, qui peut donc endommager le système.
La base de registre est apparue sur Windows 3.1, sous l'appellation « Base de données de registration », mais est alors très restreinte et sert exclusivement à associer un fichier (une extension de fichier) avec l'application qui permet de l'éditer ou le visualiser. En 1993, avec la première version de NT, elle est étendue et comprend un ensemble de clés hiérarchiques et de valeurs. La base de registre est enregistrée dans plusieurs fichiers appelés ruches (hives).
La base de registre a ensuite été reprise en 1995 dans Windows 95, sous l'appellation « Base de registres ». Cette base de données de configuration remplace la plupart des multiples fichiers d'extension .ini de Windows 3.x et de ses prédécesseurs (NB : en 2005, l'exception la plus connue est boot.ini, etc.).
Depuis Windows 98 et Windows 2000, elle porte son appellation actuelle, « Registre Windows » (ou « Registre système »).
L'une des parties les plus importantes de la base de registre sous Windows NT et ses successeurs est la SAM (Security Account Manager). Elle contient notamment les mots de passe ; sous Windows NT, par défaut, les mots de passe n'étaient pas chiffrés.
Sous Windows NT 4, la base de registre servait à la fois pour les utilisateurs locaux et pour les contrôleurs de domaine. À partir de Windows 2000, les contrôleurs de domaine sont fondés sur Active Directory et non plus sur la SAM.
La sécurité par défaut de la SAM sous Windows NT était particulièrement faible. À partir du pack 3 de Windows NT, l'utilitaire « syskey » de Microsoft permet de renforcer le chiffrement des mots de passe.
Le hachage des mots de passe était fondé initialement sur MD4 (Message Digest), puis dans les dernières versions, Microsoft est passé à MD5.
À partir de Windows 2000 il est activé sur toutes les installations et est configuré pour enregistrer la clé de démarrage dans le registre[1].
En 2013, l'utilitaire « syskey » est toujours utile dans les dernières versions de Windows(Windows Server 2012, Windows 8.1, Windows 10) et l'option de l'enregistrement de la clé de démarrage sur une disquette toujours présente[2].
Le rdisk.exe de Windows NT 4 permettait de faire une sauvegarde du registre sur une disquette 1.44 Mo (une seule...).
Cet utilitaire n'est plus inclus dans les versions ultérieures de Windows car la taille de la base de registre est devenue supérieure à la taille de la disquette.
Pour sauvegarder la base de registre, il est possible d'utiliser ntbackup
de Microsoft (copyright Microsoft et Veritas Software Corporation), en cochant la case "Toutes les informations sur cet ordinateur" ; l'extension de fichier est ".BKF" pour le fichier de sauvegarde. Par défaut, le périphérique de sortie est la disquette (1,44 Mo), ce qui est trop petit ; il faut indiquer un autre périphérique (clé USB de 1 Go ou autre).
Jusqu'à Windows 2000, il y avait 2 utilitaires légèrement différents regedit et regedt32 pour modifier la base de registre. regedit était plus convivial, alors que regedt32 permettait de faire des modifications plus pointues.
Avec Windows XP, Microsoft a unifié les 2 utilitaires : désormais, les 2 commandes appellent le même outil.
L'interface graphique actuelle de regedit de Microsoft permet de :
L'éditeur de registre ressemble visuellement beaucoup à l'explorateur Windows et fonctionne similairement au gestionnaire de fichiers Windows. À gauche de la fenêtre se trouvent les clés ; les sous-clés sont représentées par des triangles attachés aux différentes clés principales. Lorsque vous cliquez sur l'une des clés, les valeurs correspondantes s'affichent à droite de la fenêtre[3].
Le paramétrage de cet outil pour un utilisateur est configuré principalement dans
La valeur LastKey, garde en mémoire la dernière clé consultée. C'est sur cette dernière que Regedit s'ouvrira.
contient les favoris Exemple : Favoris REG_SZ Poste de travail\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites
Les utilitaires "regmaid" et "scanreg" de Microsoft avaient été créés pour résoudre des problèmes spécifiques. Ils sont a priori devenus obsolètes avec les dernières versions de Windows.
Par défaut, c'est dans le répertoire %SystemRoot%\System32\Config que sont stockés les fichiers de ruche suivants :
Les informations concernant un utilisateur sont stockées dans le répertoire correspondant à la variable d'environnement %UserProfile%. Par exemple, pour un utilisateur dont l'identifiant est « dupont », la valeur %UserProfile% sera par défaut "C:\Documents and settings\dupont" sur les installations des versions familiales ou Pro de Windows XP; le nom du répertoire peut cependant être différent car les identifiants utilisateurs peuvent changer ou parce qu'un compte utilisateur a été migré, ou en raison de limitations du système de fichiers utilisé, ou parce qu'un administrateur système a décidé de stocker les profils utilisateurs dans un autre dossier ou un autre disque ou volume réseau. Il y a un fichier de ruche NTUSER.DAT par utilisateur.
Le répertoire %SystemRoot%\repair contient une sauvegarde de la base de registre ; elle est utilisée par Windows pour certains cas de figure. De plus, sous Windows XP, la restauration du système les stocke dans le répertoire \System Volume Information du disque système.
Des fichiers journaux (extension .LOG) et des fichiers de sauvegarde (extension .SAV) sont utilisés en interne par Windows pour pallier des coupures de courant intempestives ou toute autre forme d'arrêt brutal. Les versions plus récentes de Windows ajoutent des fichiers de suivi et validation des transactions.
Les emplacements physiques des différentes ruches utilisées lors du dernier démarrage sont indiqués sous la clé hivelist dans [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\].
Voici un exemple-type du contenu de hivelist :
Nom | Type | Données |
---|---|---|
\REGISTRY\MACHINE\BCD00000000 | REG_SZ | \Device\HarddiskVolume1\EFI\Microsoft\Boot\BCD |
\REGISTRY\MACHINE\SYSTEM | REG_SZ | \Device\HarddiskVolume3\WINDOWS\system32\config\SYSTEM |
\REGISTRY\MACHINE\SOFTWARE | REG_SZ | \Device\HarddiskVolume3\WINDOWS\system32\config\SOFTWARE |
\REGISTRY\MACHINE\SECURITY | REG_SZ | \Device\HarddiskVolume3\WINDOWS\system32\config\SECURITY |
\REGISTRY\MACHINE\SAM | REG_SZ | \Device\HarddiskVolume3\WINDOWS\System32\config\SAM |
\REGISTRY\MACHINE\HARDWARE | REG_SZ | |
\REGISTRY\MACHINE\DRIVERS | REG_SZ | \Device\HarddiskVolume3\WINDOWS\System32\config\DRIVERS |
\REGISTRY\MACHINE\COMPONENTS | REG_SZ | \Device\HarddiskVolume3\WINDOWS\System32\config\COMPONENTS |
\REGISTRY\MACHINE\Schema | REG_SZ | \Device\HarddiskVolume3\WINDOWS\System32\SMI\Store\Machine\SCHEMA.DAT |
\REGISTRY\USER\.DEFAULT | REG_SZ | \Device\HarddiskVolume3\WINDOWS\system32\config\DEFAULT |
\REGISTRY\USER\S-1-5-19 | REG_SZ | \Device\HarddiskVolume3\WINDOWS\ServiceProfiles\LocalService\NTUSER.DAT |
\REGISTRY\USER\S-1-5-20 | REG_SZ | \Device\HarddiskVolume3\WINDOWS\ServiceProfiles\NetworkService\NTUSER.DAT |
\REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-500 | REG_SZ | \Device\HarddiskVolume3\Documents and Settings\Administrateur\NTUSER.DAT |
\REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-500_Classes | REG_SZ | \Device\HarddiskVolume3\Documents and Settings\Administrateur\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat |
\REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-1001 | REG_SZ | \Device\HarddiskVolume3\Users\nomutilisateur1\NTUSER.DAT |
\REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-1001_Classes | REG_SZ | \Device\HarddiskVolume3\Users\nomutilisateur1\AppData\Local\Microsoft\Windows\UsrClass.dat |
\REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-1002 | REG_SZ | \Device\HarddiskVolume3\Users\nomutilisateur2\NTUSER.DAT |
\REGISTRY\USER\S-1-5-21-numéro-unique-domainelocal-1002_Classes | REG_SZ | \Device\HarddiskVolume3\Users\nomutilisateur2\AppData\Local\Microsoft\Windows\UsrClass.dat |
Les fichiers contenant la base de registre sont User.dat et System.dat ; leur répertoire par défaut est \Windows.
Les fichiers contenant la base de registre sont User.dat, System.dat et Classes.dat ; leur répertoire par défaut est \Windows.
La base de registre est partagée en différentes sections logiques. Elles sont généralement connues par les noms les définissant quand on y accède via l'interface graphique de Windows; les noms commencent tous par 'HKEY' (une abréviation de Handle to a KEY, gestionnaire de clé).
Les deux HKEY de base sont :
Les 4 autres HKEY sont
Chacune de ces clés est divisée en sous-clé(s), qui peuvent contenir d'autre(s) sous-clé(s) et ainsi de suite, constituant toute une arborescence.
Chaque clé peut contenir des valeurs typées : il existe une quinzaine de types de données possibles,
Un grand nombre de clés et de valeurs de clés sont affichées par regedit sous un format analogue à {3F2504E0-4F89-11D3-9A0C-0305E82C3301}. En fait, il s'agit du format GUID (Globally Unique IDentifier) (16 octets).
winreg.h est l'include nécessaire pour utiliser le registre en Langage C.
Avec le langage C#, il est possible de lire et modifier la base de registre ; les différentes méthodes sont
Les fonctions sont GetSetting[4], SaveSetting.
Il est aussi possible de passer par le WSH (Windows Scripting Host)[5]
La portabilité du langage Java fait que l'accès à la base de registre n'est pas directement implémenté dans Java.
D'une façon générale, pour faire l'interface de Java avec une API native spécifique à un système d'exploitation, il faut passer par JNI (Java Native Interface).
Dans le cas particulier de la base de registre, il existe par exemple la DLL ICE_JNIRegistry[6].
Certaines bibliothèques n'utilisent pas JNI pour accéder à la base de registre. C'était le cas de Java Registry Wrapper (sur l'ancien site " Java By Example | Registry / Reg").
Contrairement à ce qui est habituel sous Windows, des casses de caractères différentes donnent des résultats différents. Exemple : les valeurs "no" et "No" peuvent donner des résultats très différents.
Le caractère espace (" ") peut être utilisé dans les noms de clés, bien que ce soit rare (exemple : la clé optionnelle Use Search Asst).
Lors des mises à jour de Windows, la base de registres est automatiquement sauvegardée.
L'utilitaire rstrui.exe permet de voir la liste des sauvegardes ; dans la terminologie Microsoft, elles sont appelées points de restauration système.
Parmi les services Windows, il existe un service "Accès à distance au Registre" (RemoteRegistry). Il permet non seulement de lire, mais aussi de modifier la base de registre à distance. Pour des raisons de sécurité, il est prudent de mettre le paramètre "Mode de démarrage" à la valeur "Désactivé" ; les 2 autres valeurs possibles sont déconseillées : "Manuel" et "Automatique".
Ce service fait partie des services lancés via la commande "svchost.exe -k LocalService" (Processus SerViCe HOST pour le compte correspondant à utilisateur local). Il utilise le service RPC (Remote Procedure Call).
L'utilitaire syskey[7] de Microsoft est recommandé si on veut se protéger contre une personne ayant un accès physique au local où se trouve le PC.
Le contenu de la base de registre sous Windows correspond aux fichiers des répertoires etc d'Unix ou de Linux.
Le système de Windows utilise des fichiers indexés, ce qui permet un accès optimisé aux informations de la base. La structure permet de créer une configuration multi-utilisateur de manière transparente.
À l'opposé, Unix utilise de simples fichiers texte pouvant contenir des explications concernant chaque paramètre; ils sont modifiables avec tout éditeur de texte. Le problème de donner des droits sur chaque paramètre pour des utilisateurs particuliers sous Unix (ce que permet la base de registre de Windows puisque toute clé est un objet ayant une ACL) est abordée différemment; les logiciels accédant à des ressources privilégiées gèrent généralement ces droits selon une logique qui leur est propre, soit en utilisant l'appartenance aux groupes d'utilisateurs, soit en spécifiant eux-mêmes des niveaux de droits particuliers[8].
La plupart des paramètres de la base de registre ont un type intrinsèque[réf. nécessaire]. Mais, certains paramètres sont codés en hexadécimal, ce qui annule l'avantage et rend difficile une modification. Sous Unix, le paramétrage est fait via un fichier de texte et donc les paramètres ne possèdent aucun typage intrinsèque (et il est donc possible d'avoir une erreur de configuration).
L'exploration de la base de registre se révèle dans les faits assez complexe et fastidieuse : il y a beaucoup de paramètres mais aucun commentaire n'est prévu si ce n'est les noms plus ou moins parlant des clés. Il est nécessaire de faire appel à une documentation extérieure pour obtenir une explication. À l'inverse, les fichiers de configuration Unix abondent souvent d'explications plus ou moins claires, car tous ces fichiers peuvent être commentés. Sous Unix, la dispersion des fichiers de configuration propres à chaque logiciel rend difficile toute solution visant à les administrer de façon globale ; en contrepartie, une intervention malheureuse concernant l'un d'eux n'a généralement pas d'effet sur les autres[9].
En cas de corruption du fichier de base de registre, il est possible de restaurer (si une stratégie de restauration a été mise en place) l'intégralité des paramètres de base de registre en une seule fois.
Lors d'erreurs de paramétrage, le retour en arrière est possible sous Windows : Windows fait automatiquement une sauvegarde de la base de registre, appelée Point de restauration.
Sous Unix (ou Linux), il n'y a pas de sauvegarde automatique des fichiers de configuration. Si l'utilisateur fait une erreur sur un de ses fichiers de configuration, il devra éventuellement passer au niveau d'init minimum, puis, dans tous les cas, il devra corriger le ou les fichiers de configuration avec un éditeur de texte simple. L'habitude est d'utiliser un éditeur qui garde une copie de sauvegarde des fichiers modifiés, ce qui est le cas général. Les commandes de base de unix (cp, cmp, ou les outils graphiques) rendent très simple les copies et comparaisons sur l'ensemble de /etc.
"dconf" est l'équivalent de la base de registre Windows pour les applications fondées sur GNOME (une des interfaces graphiques open source). Les données sont stockées au format binaire.
Dans les anciennes versions de linux, c'était GConf qui était utilisé et les données étaient au format XML.
Le système d'exploitation AIX utilise lui aussi un équivalent de la base de registre, sous le nom de ODM (Object Data Manager).
Le projet Elektra de Avi Alkalay a pour but de centraliser tous les paramètres de configuration sous Linux dans une même structure. C'est l'équivalent de la base de registre sous linux.
Les 2 formats de stockage possibles (le backend) sont XML (même format que pour GConf) ou Berkeley DB. Les modifications des données sont faites directement, sans passer par un démon.
Le projet Elektra est sous licence BSD; il est hébergé par SourceForge.net.
Sur les anciennes versions de Mac OS X, l'équivalent de la base de registre est la base de données NetInfo (en).
Sous XP et Seven il est aussi possible de créer des « points de restauration système »[11]. Ce n'est pas à proprement parler un backup, mais cela permet de revenir à l'état antérieur.
L'utilitaire en ligne de commande REGINI.EXE de Microsoft permet de modifier la base de registre en fonction d'un fichier au format INI (modifiable avec n'importe quel éditeur de texte comme Notepad). Regini est livré dans le kit de ressources Microsoft pour Windows 2000 (payant).
L'utilitaire REGEDIT de Microsoft peut aussi être utilisé en ligne de commande avec l'option "/s" ; dans ce cas, le fichier des modifications à effectuer doit être au format .REG, qui n'est autre qu'un fichier au format ANSI composé de l'entête "Windows Registry Editor Version 5.00". Note : l'utilitaire n'est pas manageable en ligne de commande car aucun code d'erreur n'est retourné. Il est en natif sur tous les postes.
L'utilitaire REGSVR32.EXE permet d'enregistrer et de désenregistrer une DLL dans la base de registre. Ce n'est pas à proprement parler un outil pour modifier la base de registre. Il est en natif sur tous les postes.
L'utilitaire REG.EXE permet de faire toutes sortes d'opération sur les clef de la base de registre, en ligne de commande. Il est donc parfaitement manageable. Il est en natif sur tous les postes.
Regalyzer est un gratuiciel qui est comparable à REGEDIT : il offre une interface graphique pour modifier la base de registre.
Il offre des fonctionnalités supplémentaires, notamment sur la recherche de chaînes de caractères ; exemples :
Le panneau de saisie des critères de recherche offre également de nombreuses options comme une recherche avec des opérateurs booléens (AND, OR, NOT), l'utilisation des caractères joker : « * » et « ? », ainsi qu'une possibilité de recherche sensible à la casse. La recherche peut donc être un peu longue... mais avec pour résultat un tableau exhaustif des occurrences trouvées sans nécessité d'utiliser ensuite la touche F3 pour rechercher une possible nouvelle occurrence comme c'est l'usage avec Regedit. Pour chaque occurrence présentée dans le tableau résultant, le logiciel affiche la clé, le nom de la valeur, et la donnée contenue.
Le logiciel permet aussi dans le tableau résultant d'effectuer des sélections (plusieurs types de sélections sont possibles) pour exports ou pour suppressions. Il permet aussi d'ouvrir le logiciel Regedit directement sur la clé sélectionnée. Un onglet "Remplacer" permet aussi de modifier des clés ou valeurs sélectionnées en utilisant des critères de façon à opérer la même manipulation en une seule fois sur toutes les clés ou valeurs sélectionnées.
Une fois le tableau des résultats obtenu, le logiciel se présente sous la forme de deux fenêtres : une fenêtre comportant le tableau des résultats, et une fenêtre se comportant comme Regedit en présentant l'arborescence complète centrée sur la clé sélectionnée. Lorsqu'un double-clic est effectué sur une occurrence dans la fenêtre tableau des résultats, la fenêtre présentant l'arborescence se met à jour pour refléter la nouvelle sélection. Et toutes les opérations possibles avec Regedit sont alors possibles sur la clé ou la valeur sélectionnée (modifier des données, créer, renommer ou supprimer des valeurs ou des clés, etc.)
Voir l'article spyware.
Il existe aussi des utilitaires pour éliminer les entrées inutilisées de la base de registre. Ces utilitaires sont appelés nettoyeurs de registre.
Le logiciel regclean de Microsoft est a priori obsolète, il date de .
Autres exemples de nettoyeurs de registre :
NB : Ces utilitaires ne sont pas validés par Microsoft et, tout pertinents qu'ils soient, rien ne garantit qu'ils ne perturberont pas le fonctionnement du système, comme rien ne prouve leur efficacité présumée. L'utilisateur reste seul responsable des inconvénients éventuels subis.
Le nettoyage de la base de registre repose sur plusieurs concepts génériques :
Exemple :
Il peut être utile de journaliser les modifications de la base de registre,
Cela peut servir par exemple pour faciliter la télédistribution de logiciels.
Exemple de logiciels :
Certains émulateurs de Windows permettent de faire des tests sur la base de registre. Exemple d'émulateur :
Par exemple, pour tester un exécutable d'origine douteuse, on le lance sur un émulateur et on peut voir quelle partie de la base de registre a été modifiée. Si l'exécutable s'avère dangereux, il suffit d'arrêter-relancer l'émulateur et tout redevient normal.
Les trois livres suivants expliquent quelques valeurs de clés utiles à connaître parmi la multitude de celles qui existent
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.