Accueil > Dossiers > Introduction à la base de registre

Introduction à la base de registre

SOMMAIRE DU DOSSIER

a) Le principe de la base de registre
b) Les différents types de données
c) La configuration de l'ordinateur
d) Utiliser la base de registre en MS-DOS
e) Configuration de la console de commande

a) Le principe de la base de registre >> vers le haut

Windows a besoin de garder en mémoire certaines valeurs qui définissent son fonctionnement. Certaines sont surtout là pour répondre au besoin d'information de l'utilisateur, par exemple la détection de son matériel, revu à chaque démarrage. D'autres servent d'historique ; par exemple, quand vous utilisez un programme, il vous permet en général d'ouvrir rapidement les quatres derniers fichiers auxquels vous avez accédé : pour connaître ces fichiers, soit il stocke l'emplacement dans un fichier de cache (par exemple un fichier .ini, qu'on ouvre comme du texte), soit il le met en base de registre. Enfin, le façon même dont windows fonctionne peut-être configurable par la base de registre ; c'est ce que nous verrons en altérant son mécanisme de protection des fichiers.

 

b) Les différents types de données >> vers le haut

Dans la base de registre se trouvent des "clés", chacune associé à quelque chose de bien précis ; par exemple, quel est le constructeur du lecteur de Cd-Rom, ou faut-il activer le cache, etc... Ces clés ont des types, selon les informations qu'elles renferment. Tous les types commencent par Reg_, et voici ce qui peut suivre :

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

c) La configuration de l'ordinateur >> vers le haut

 

 

 

 

 

 

 

 

 

 

 

- Software. Tous les paramètres pour les applications de type 32 bits installées ; pour un bref rappel, la majorité de ce qu'on utilise maintenant est en 32 bits (large capacité d'adressage) contre du 16 bits précédemment. On peut trouver dans ce répertoire les paramètres pour des programmes installés comme Photoshop, Sygate Personal Firewall, Anno 1503... Mais aussi, et surtout, les paramètres de windows.
- Security. Dans le futur, des applications avec une sécurité accrue sont envisagées, et ce répertoire est préparé pour assurer la compatibilité.
- System. Des informations sur les pilotes, et diverses choses un peu complexe...

 

 

 

 

 

 

 

 

 

 

 

d) Utiliser la base de registre en MS-DOS >> vers le haut

Démarrez la console de commandes (Démarrer>Executer "Cmd" ou Démarrer>Tous les programmes>Accessoires>Invite de Commandes). Nous allons utiliser la commande REG, équivalent en dos de la commande REGEDIT en mode fenêtre.

La commande reg a ce qu'on pourrait appeller 11 "modules" : query (demander), add (ajouter), delete (supprimer), copy (copier), save (sauvegarder), restore (restaurer), load (charger), unload (décharger), compare (comparer), export (exporter), import (importer).

Pour connaître la valeur d'une clé ou d'un ensemble de clés, on utilise donc reg query. Il faut savoir que pour repérer une clé, on donne d'abord le groupe auquel elle appartient sous forme abrégée ; voici les correspondances :
- HKEY_CLASSES_ROOT est HKCR
- HKEY_CURRENT_USER est HKCU
- HKEY_LOCAL_MACHINE est HKLM
- HKEY_USERS est HKU
- HKEY_CURRENT_CONFIG est HKCC

Les deux commutateurs (options à utiliser avec /) principaux sont /V et /S, pour avoir respectivement la valeur d'une clé en particulier et la valeur de toutes les clés et sous-clés à partir d'un répertoire donné. Ainsi, si nous voulons connaître la version du Bios, en sachant où il se trouve, voici la commande :

De même, si on veut les informations sur le lecteur de CD-ROM et les sous-clés contenues dans le groupe du CD-ROM, voici la commande :

Précisons qu'on peut utiliser la commande Reg sur un ordinateur distant, mais alors seuls HKLM et HKU sont disponibles. Pour cela, avant l'emplacement de la clé on spécifiera le nom de l'ordinateur, par exemple si l'ordinateur a interroger s'appelle Charon : reg query \\Charon\HKLM\Hardware\Description\System

Voyons aussi comment ajouter une clé. Tout d'abord, on peut ajouter un groupe de clé ; par exemple, pour ajouter le groupe Aqua dans LOCAL_MACHINE\Hardware\Description, voici la commande :
Reg add HKLM\Hardware\Description\Aqua

Normalement, la console renvoit le message "L'opération s'est bien déroulée". Vous pouvez maintenant ajouter des clés dans ce répertoire. Rajoutons une clé nommée Identifier et de type SZ, contenant "Aqualonne" :
Reg add HKLM\Hardware\Description\Aqua /v Identifier /d Aqualonne

Avec /v on précise le nom de la clé et avec /d son contenu. Si on ne précise pas le type, c'est du SZ. Sinon, on doit le préciser. Un exemple :
Reg add HKLM\Hardware\Description\Aqua /v Number /t REG_DWORD /d 0x50f

On précise que notre valeur 50f est en héxadécimal avec 0x. Si ce n'est pas précisé, la valeur est en décimal. Mine de rien, ces commandes peuvent s'avérer utiles pour contourner une protection basique. En effet, lorsqu'on fait des opérations (interroger par exemple) sur la base de registre, on a un code de retour : 0 pour la réussite, 1 pour l'échec. Un programme peut chercher si la clé devant être créée à l'issue de l'enregistrement existe ; si c'est le cas, il accepte de démarrer, sinon il refuse. Cette protection est très loin d'être suffisante en soit, mais elle peut constituer un supplément rapide à mettre en oeuvre.

Vous avez évidemment une possibilité de comparer des clés. Comparons par exemple notre groupe Aqua avec le groupe System, nous utiliserons cette commande :
Reg Compare HKLM\Hardware\Description\Aqua HKLM\Hardware\Description\System /OS

Le résultat sera "Result Compared : Different" ; cela produit aussi une valeur de retour : 0 si identique, 2 si différent, 1 si échec de la comparaison. Le commutateur /OS permet de n'afficher que les similitudes ; l'affichage par défaut concerne les différences.

Vous pouvez aussi exporter la clé de la base de registre de manière à en faire un fichier .reg, comme vous pouvez en trouver à l'occasion pour des installations d'un genre "particulier". La commande est simple :
reg export HKLM\Hardware\Description\Aqua C:\aqua.reg

Vous spécifiez la clé à exporter, et le fichier où le faire. Après, l'importation est évidente : reg import C:\aqua.reg
Pour détruire, la syntaxe est la même que pour ajouter. Par exemple, si on veut détruire la clé Number :
reg delete HKLM\Hardware\Description\Aqua /V Number

Et pour détruire le groupe entier : reg delete HKLM\Hardware\Description\Aqua

 

 

e) Configuration de la console de commande >> vers le haut

Dans Edition, cliquez sur Rechercher (Ctrl+F, comme Find). Nous cherchons "Console" dans les Clés, en Mot entier seulement. Normalement, vous devez tomber sur HKCU (pour rappel : HKEY_CURRENT_USER) où se trouve la clé Console. Dans HKCU se trouvent les paramètres de l'utilisateur, si nous modifions les paramètres de la console et que nous la lancons par la suite, nous devrions voir la différence.

Double-cliquez sur FullScreen et passez le à 1 ; savoir ce qui va se passer relève de la logique. Sachant qu'avant la valeur était 0 et que la console n'était pas en plein écran, vous la mettez à 1 : il est très probable que cela active le mode plein-écran (en général, ce sont des valeurs booléennes 0 ou 1 que vous trouverez). Lorsque vous lancerez la console de commandes, elle sera maintenant en plein écran ; vous taperez exit pour quitter.

Avec la valeur ScreenColors vous avez la valeur d'arrire-plan puis de premier plan. Par défaut, vous serez probablement en 07 ; si vous vous reportez au dossier 4 sur le MS-DOS, vous comprendrez que cela correspond à gris clair sur fond noir. Ainsi, modifiez cette valeur en 75 : au prochain démarrage de la console, celle-ci sera en pourpre sur fond gris.

Maintenant, remettez ScreenColors à 07, et modifiez la valeur ColorTable00 à 8000. Lorsque vous lancerez la console de commande, elle sera en gris clair sur fond vert ! Pourquoi ? Parce que vous avez fait correspond à la couleur 0 une teinte de vert.

Vous pouvez aussi modifier CursorSize à 50, et en ouvrant la console de commande vous constaterez que le curseur est nettement plus gros. Voici un petit tableau récapitulatif :

Nom
Effet
Exemple de valeur
ColorTable00 à ColorTable15
Modifie la correspondance des couleurs. En effet, lorsqu'on demande une couleur en dos, elle correspond à une de ces valeurs ; par exemple la couleur 0 va s'adresser à ColorTable00 et F à ColorTable15 (car en héxadécimal, après 9 il y a A, B, C, D, E, F).
ColorTable00 à 8000 (héxadécimal) donnera la teinte du vert. Demander du noir ou du vert aura le même effet.
CursorSize
La taille du curseur
50 : curseur fera la taille des lettres
FullScreen
Mettre ou non en plein écran
0 en fenêtre, 1 en plein écran
ScreenColors
Couleur d'arrière-plan puis de premier-plan en correspondance avec les ColorTable précédentes
0F par défaut noir sur fond blanc

Indication : vous pouvez exporter la valeur par défaut de la clé et en crée à vous et l'exporter à son tour. Suivant les conséquences, vous préférerez importer une configuration ou l'autre.


- SZ : Le plus courant, il contient une chaine de caractère. Par exemple, le nom de votre revendeur de processeur "AuthenticAMD", ou ci-contre la référence du lecteur de CD.
- DWORD : Une donnée généralement codée sur 4 octets. Pour rappel, un octet contient 8 bits et le nombre total de combinaison est de 2^(nombre de bits) ; pour 2^10 on a 1024 valeurs, et ici on est sur 2^32... En général, vous verrez ces valeurs avec un 0x devant, indiquant qu'elles sont écrites en héxadécimal ; entre parenthèse se trouve la correspondance en décimal. Par exemple, 0x0000050f (1295), qui peut donner comme information la vitesse du processeur, soit 1295 MHz.
- BINARY : une valeur binaire, difficile à comprendre directement. Lorsque vous l'ouvrez, un mini éditeur vous permet de la gérer et vous la transpose en quelque chose de plus clair ; sur ce point, windows obéit en général à une philosophie claire : soit l'utilisateur peut avoir à modifier des valeurs et elle sont plutôt de type Dword ou Sz, soit ce n'est pas fait pour lui et il a intérêt à s'y connaître, auquel cas c'est des Binary. C'est plutôt une parabole qu'une réalité, mais elle se vérifie bien.

- FULL_RESSOURCE_DESCRIPTOR : Comme son nom l'indique, cela décrit de façon complète une ressource ; c'est-à-dire ce qui va avec le matériel ou le pilote. Pour rappel, un pilote est le programme (software) permettant de gérer une partie de votre matériel (hardware) ; c'est ce que vous installez à partir du cd ou de la disquette que le constructeur a mit avec le matériel... Ci-contre, un exemple de la fenêtre que vous pouvez obtenir, généralement peu complète.

- MULTI_SZ : Un peu plus particulier. C'est une chaine de caractères en plusieurs parties, chaque partie étant séparée de la suivante par un Z.

- Il existe aussi d'autres types comme DWORD_BIG_ENDIAN, DWORD_LITTLE_ENDIAN et LINK.

- EXPAND_SZ : C'est une chaine de caractère qui peut utiliser des variables connues par le système, celles ci étant entre % %. Le système se charge de remplacer ces variables par leur valeur.
Nous allons ouvrir la base de registre. Pour cela, cliquez sur Démarrer puis Executer et rentrez "regedit" ; c'est ce qui lance l'EDITeur de la base de REGistre. Maintenant, vous avez la liste des principaux groupes de clés qui s'affichent. Celui dont nous allons nous occuper est Local_Machine qui concerne principalement les paramètres du réseau et la configuration du magtériel.

Contrairement aux autres paramètres, la modification de ce qui se trouve dans Local_Machine ne présente pas un grand intérêt : ces paramètres sont réinitialisés au démarrage de l'ordinateur.

Cliquez sur le bouton + à côté de HKEY_LOCAL_MACHINE pour ouvrir l'arborescence. Nous avons des répertoires dont le nombre varie selon les ordinateurs ; voici ceux qui sont constants :
- Hardware. Contient les informations sur le processeur, le disque dur, le lecteur de disquette et le lecteur de CD ; on y trouve aussi une liste des ports et quelques informations sur la ressource.

A partir de ces renseignements, nous allons rechercher le constructeur de notre lecteur de Cd-Rom. Ouvrez Hardware > Description > System > ScsiAdapter > 0 > CdRomController > 0, les renseignements sont ici. Vous pouvez éditer la clé (double-clic dessus), ça ne gêne pas.

Vous pouvez continuer à déambuler dans Hardware pour connaître les autres informations, en particulier :
- Description. Renseignements sur le Bios (date, version...).
- Description > System. Informations sur le processeur, le lecteur de CD-ROM, le contrôleur de disque, le lecteur de disquettes.
- DeviceMap. Les informations sur les ports (la souris, le clavier, ports parallèles, ports séries COM, la vidéo, et ce qui est branché sur les nappes (disques durs, lecteurs de CD-ROM...)