vignette|Structure du registre. 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.

Historique Des fichiers .ini de Windows 3.x à la base de registre actuelle 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 »).

De la SAM de NT à Active Directory de Windows 2000 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.

L'utilitaire syskey de Microsoft pour sécuriser 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 Quelques clés du registre utilisés par Syskey..

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 discussion sur la possibilité de mettre la clé de démarrage dans une clé USB..

Le rdisk de NT et sa disparition dans les versions ultérieures 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 (), ce qui est trop petit ; il faut indiquer un autre périphérique (clé USB de ou autre).

Utilitaire regedit 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 : Modifier la base de registre D'attribuer des droits spécifiques sur les clés de la base registre; l'interface graphique pour modifier les droits est semblable à celle qui permet de modifier les droits NTFS. 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.

Le paramétrage de cet outil pour un utilisateur est configuré principalement dans HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit La valeur LastKey, garde en mémoire la dernière clé consultée. C'est sur cette dernière que Regedit s'ouvrira. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites contient les favoris Exemple : Favoris REG_SZ Poste de travail\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites HKEY_CURRENT_USER\Software\Microsoft\regedt32

Utilitaire regmaid et scanreg de Microsoft 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.

Répertoire de la base de registre Sous Windows Server 2003, Windows XP, Windows Server 2000 et NT Par défaut, c'est dans le répertoire %SystemRoot%\System32\Config que sont stockés les fichiers de ruche suivants :

Components default SAM (Security Account Manager) Security Software System

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

Sous Windows 95 et 98, répertoire de la base de registre Les fichiers contenant la base de registre sont User.dat et System.dat ; leur répertoire par défaut est \Windows.

Sous Windows Me, répertoire de la base de registre Les fichiers contenant la base de registre sont User.dat, System.dat et Classes.dat ; leur répertoire par défaut est \Windows.

Le contenu de la base de registre Deux HKEY de base 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 :

HKEY_LOCAL_MACHINE (HKLM) contient les informations qui sont générales à tous les utilisateurs de l'ordinateur : Matériel Sécurité SAM (Security Account Manager) Logicielle, la sous-branche "Classes" correspond à HKEY_CLASSES_ROOT Système, elle contient notamment la sous-branche CurrentControlSet (NB : CurrentControlSet\Control\Class contient des informations sur les classes).

HKEY_USERS contient les informations spécifiques de chaque utilisateur. La sous-branche correspondant à l'utilisateur courant est l'équivalent de HKEY_CURRENT_USER. Attention, cette ruche n'est visible que si l'utilisateur associé est connecté

Les 4 autres HKEY sont

HKEY_CURRENT_CONFIG contient des informations qui sont mises à jour immédiatement, elles sont régénérées après chaque boot.

HKEY_CLASSES_ROOT (HKCR) contient les informations sur les applications enregistrées ; cela inclut entre autres les associations entre extensions de fichiers et identifiants de classe d'objet OLE, ce qui permet de lancer automatiquement l'exécutable correspondant. Cela correspond à HKEY_LOCAL_MACHINE\SOFTWARE\Classes. Exemple : ".bat" et "XML" sont respectivement associés à "batfile" et "XML script engine".

HKEY_CURRENT_USER (HKCU) contient les informations concernant l'utilisateur connecté. Ce n'est qu'une sous-branche de HKEY_USERS.

HKEY_PERFORMANCE_DATA (ou HKEY_DYN_DATA sous Windows 9x) générée dynamiquement (REGEDIT ne l'affiche pas). Ces données sont visibles par l'intermédiaire de l'utilitaire perfmon.msc.

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.

Typage des valeurs