Le Registre de Windows XP
Le registre de Windows : derrière ce terme obscur se cache une base de données contenant les informations de configuration du système d'exploitation et des logiciels installés désirant l'utiliser. La base de registre est apparue sur Windows 3.x, mais ne deviendra vraiment importante qu'en 1993, avec la première version de Windows NT, quand elle sera étendue et comprendra un ensemble de clés hiérarchiques et de valeurs. Elle est ensuite reprise dans Windows 95, en 1995. 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.
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 4, la base de registre servait à la fois pour les utilisateurs locaux et pour les contrôleurs de domaine. A partir de Windows 2000,les contrôleurs de domaine sont basés sur Active Directory et non plus sur la SAM.
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.
Le paramétrage de cet outil pour un utilisateur est configuré principalement dans
* HKEY-CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\
* HKEY-CURRENT_USER\Software\Microsoft\regedt32
Par défaut, c'est dans le répertoire %SystemRoot%\System32\Config que sont stockés les fichiers de ruche suivants :
* 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 le login est "dupont", la valeur %UserProfile% sera par défaut "C:\Documents and settings\dupont".
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 le répertoire \System Volume Information du disque système.
La sauvegarde physique de la base sous forme de fichiers est alors appelée "ruche" (hive) ; une ruche correspond à un fichier. Il y a un fichier de ruche NTUSER.DAT par utilisateur.
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 emplacements physiques des différentes ruches utilisées lors du dernier boot sont indiqués sous la clé hivelist de
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\.
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 2 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 à chaque utilisateur. La sous-branche correspondant à l'utilisateur courant est l'équivalent de HKEY_CURRENT_USER.
Les 5 autres HKEY sont
* HKEY_CURRENT_CONFIG contient des informations qui sont mises à jour en temps réel, 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 autre 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 généré dynamiquement (REGEDIT ne l'affiche pas)
* HKEY_DYN_DATA généré dynamiquement (REGEDIT ne l'affiche pas)
Chacune de ces clés est divisée en sous-clés, qui peuvent contenir d'autres sous-clés et ainsi de suite, constituant toute une arborescence.
Typage des valeurs
Chaque clé peut contenir des valeurs typées : il existe une quinzaine de type de données possibles :
* 1) binaire REG_BINARY, création possible avec REGEDIT
* Entier
2) dword REG_DWORD , 32 bits, création possible avec REGEDIT
3) REG_DWORD_BIG_ENDIAN
4) REG_DWORD_LITTLE_ENDIAN
5) QWORD REG_QWORD 64 bits
6) REG_QWORD_BIG_ENDIAN
7) REG_QWORD_LITTLE_ENDIAN
* Chaîne de caractères
8) Chaîne simple REG_SZ, création possible avec REGEDIT
9) Chaîne extensible REG_EXPAND_SZ, permet d'utiliser des variables d'environnement, création possible avec REGEDIT
10) Chaîne multiple REG_MULTI_SZ, création possible avec REGEDIT
* 11) NONE, REG_NONE : signifie donnée non typée
* Ressource
12) REG_RESOURCE_LIST
13) REG_RESOURCE_REQUIREMENTS_LIST
14) REG_FULL_RESOURCE_DESCRIPTOR
* 15) REG_LINK
GUID (et CLSID)
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).
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.
Enfin, 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 est plus performant, il utilise des fichiers indexés (dérivés du moteur Jet de Microsoft Access), 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.
A l'opposé, Unix utilise de simples fichiers texte pouvant contenir des explications concernant chaque paramètre. De plus, chaque paramètre est modifiable avec un simple éditeur de texte.
On peut aussi remarquer que les paramètres de la base de registre sont parfois en langage binaire ou hexadécimale, ce qui peut rendre difficile une modification.
En pratique, la base de registre de Windows ressemble à une "usine à gaz", alors que sous Unix, il y a des fichiers de configuration séparés pour chaque logiciel. En cas de corruption du fichier de base de registre, il est plus délicat de restaurer les données, contrairement à Unix où de multiples fichiers forment la configuration des programmes installés.
Enfin, place aux trois sections qui seront abordées dans ces pages : comment, en modifiant le registre, peut-on optimiser et sécuriser Windows XP
Source : Wikipedia