Vous êtes sur la page 1sur 37

ECOLE SUPERIEURE

ET D’APPLICATION

DES TRANSMISSIONS

division management

des systèmes d’information

WINDOWS NT® 4.0

La base de registre
COURS SYSTEME

Edition 2001
ESAT/DMSI La base de registre sous Windows NT 4.0

Dépôt des marques :

Pentium® est une marque déposée de la société Intel®.

MS-DOS®, le logo Microsoft, Microsoft® Windows 95, Microsoft® Windows 98, Microsoft Windows NT®
et Microsoft® Windows 2000 sont des marques déposées de la société Microsoft.

Tous les noms de produits ou de marques cités dans ce document sont des marques déposées de
leurs propriétaires respectifs.

Bibliographie :

La base de registre Windows NT - Paul Robichaux - édition O’Reilly


Windows NT Magazine - Septembre 1997 – D & S Communication
Développer sous Windows 95 et Windows NT - Jeffrey Richter - Microsoft Press

ESAT - DMSI - SYSTEME Version : 2.00 Edition : janvier 2001

- 2 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

TABLE DES MATIERES

1. Pourquoi une base de registres ?.........................................................................6


2. Architecture de la base de registres sous Windows NT4.0................................7
2.1. Définition des composants élémentaires..........................................................................7
Clés racines.............................................................................................................................7
Une clé peut contenir des sous-clés et/ou des valeurs : ........................................................8
Sous-clés................................................................................................................................8
Valeurs....................................................................................................................................8
Remarques..............................................................................................................................9
Ruches..................................................................................................................................11
Liaisons.................................................................................................................................12
2.2. Structure de la base..........................................................................................................14
HKEY_LOCAL_MACHINE....................................................................................................14
HKEY_USERS......................................................................................................................14
HKEY_DYN_DATA...............................................................................................................14
HKEY_CURRENT_USER.....................................................................................................15
HKEY_CLASSES_ROOT......................................................................................................15
HKEY_CURRENT_CONFIG.................................................................................................15
2.3. Sous-clés principales de HKEY_LOCAL_MACHINE.......................................................16
HARDWARE..................................................................................................................16
SAM...............................................................................................................................16
SECURITY....................................................................................................................17
SOFTWARE..................................................................................................................17
SYSTEM.......................................................................................................................17
SYSTEM \ CurrentControlSet........................................................................................17
3. Manipulations de la base de registres................................................................19
3.1. Sauvegarde / Restauration de la base de registres........................................................19
RDISK...................................................................................................................................19
REGEDIT et REGEDT32......................................................................................................20
Regback.exe et Regrest.exe.................................................................................................20
REGBACK.....................................................................................................................21
REGREST.....................................................................................................................21
3.2. Manipulations avec Regedit.exe......................................................................................22
Importation, exportation.........................................................................................................22
Modification de clés...............................................................................................................23
Accéder à un registre distant.................................................................................................23
La recherche de clé ou de valeur..........................................................................................23
3.3. Manipulations avec Regedt32.exe...................................................................................24
Sauvegarde et Restauration de clés.....................................................................................24
Charger et décharger la ruche...............................................................................................24
Accéder à un registre distant.................................................................................................24
Informations sur la sécurité...................................................................................................25
Les permissions.............................................................................................................25
L’accès spécial..............................................................................................................25
L’audit............................................................................................................................27
Propriétaire....................................................................................................................27

- 3 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

4. Annexes..................................................................................................................28
4.1. Les types de données.......................................................................................................28
REG_DWORD.......................................................................................................................28
REG_SZ................................................................................................................................28
REG_MULTI_SZ...................................................................................................................28
REG_EXPAND_SZ...............................................................................................................28
REG_BINARY.......................................................................................................................29
REG_LINK.............................................................................................................................29
REG_NONE..........................................................................................................................29
REG_DWORD_BIG_ENDIAN...............................................................................................29
REG_FULL_RESSOURCE_DESCRIPTOR..........................................................................29
REG_RESSOURCE_LIST....................................................................................................30
REG_RESSOURCE_REQUIREMENT_LIST........................................................................30
4.2. Outils du Kit de Ressources Techniques........................................................................31
Reg.exe : un véritable couteau suisse...................................................................................32
Consulter des clés.........................................................................................................32
Ajouter des clés.............................................................................................................32
Modifier des clés............................................................................................................33
Supprimer une clé..........................................................................................................33
Copier des clés, des valeurs..........................................................................................33
Enregistrer et restaurer des clés....................................................................................34
Décharger et charger une ruche....................................................................................34
4.3. Fonctions de manipulation de la base de registres issues de l’API WIN32.................35
4.4. Quelques sous-clés...........................................................................................................37
ICONES, MENUS..................................................................................................................37
PARAMETRES......................................................................................................................37
MODIFICATIONS, RESTRICTIONS.....................................................................................38
4.5. Résumé en quelques tableaux.........................................................................................39

- 4 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

1. Pourquoi une base de registres ?


Pour qu’une application puisse pleinement fonctionner, il lui est nécessaire de connaître
certaines données sur le matériel, les ressources et autres logiciels installés sur l’ordinateur.

A l’époque de Windows 3.0, des fichiers d’informations étaient disponibles dans ce but pour
toutes les applications sous la forme de fichier *.INI . Dans les fichiers systèmes WIN.INI,
SYSTEM.INI, PROTOCOL.INI et CONTROL.INI, on trouvait l’ensemble des ressources utilisées et
disponibles, comme les pilotes de périphériques, les polices de caractères installées etc. Ainsi, lors de
l’installation d’un logiciel, ces fichiers étaient consultés par les applications qui créaient, à partir de là,
leurs propres fichiers d’initialisation. On avait, de ce fait, des fichiers de renseignements (ou
d’initialisation : .INI) un peu partout sur le disque.

Ce système était très simple mais générait aussi quelques perturbations :

• le dialogue inter - applications était difficile voire impossible, car on ne pouvait pas savoir si une
application était installée et si elle l’était, quels étaient ses paramètres ;

• quand un élément était supprimé de l’ordinateur, une application se basant sur son fichier
personnel d’initialisation ne détectait pas cette suppression et pouvait générer une erreur ou
bloquer tout simplement (exemple : suppression d’une police de caractères) ;

• la taille maximale pour ces fichiers était insuffisante : seulement 64ko pour l’ensemble des
données.

• si deux champs possédaient le même nom à l’intérieur du fichier, seule la première occurrence
était prise en compte. Les programmes voulant écrire dans les fichiers WIN.INI ou SYSTEM.INI
devaient donc s’assurer que leur nom de variable n’était pas utilisé.

C’est donc avec Windows 3.1 qu’apparut le premier registre (REG.DAT) fonctionnant sur les principes
suivants :

• D’une part, centraliser et organiser de façon hiérarchique l’ensemble des renseignements aussi
bien matériels que logiciels permettait un dialogue plus simple entre les différents composants
logiciels présents.

• D’autre part, l’idée fût abandonnée de représenter les informations sous la forme de simple
fichiers texte. N’importe quel applicatif ou utilisateur pouvant modifier les fichiers *.INI, il y avait un
manque cruel de sécurité.

La structure de données pour la base de registres de Windows a beaucoup évolué entre les
différentes versions de Windows. De Windows 3.1 qui comportait une seule clé racine, on est passé à
6 clés racines pour Windows NT 4.0. La structure de la base de registres de Windows NT 4.0 est
développée dans la partie 2.2 de ce document.

Aujourd’hui, sous Windows NT, la base de registres est un outil d’administration performant.
Quand les droits adéquats ont été attribués, son accès à partir du réseau permet la configuration à
distance d’un ordinateur.

- 5 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

2. Architecture de la base de registres sous Windows NT4.0


La base de registres étant un composant essentiel de Windows NT, il convient de connaître sa
structure pour savoir utiliser, modifier et protéger les données qu’elle contient. Il faut donc examiner
les concepts de base du registre, ce qui permet ensuite de comprendre l’agencement des données de
configuration.

2.1. Définition des composants élémentaires

Le registre est comparable à un système de fichiers ou une base de données, car l’un et l’autre
ont une organisation similaire. Leur structure hiérarchique est bien définie et ils prennent tous deux en
charge le concept d’imbrication d’objets.
Les fichiers sont identifiés par des noms et des chemins d’accès, comme le sont les clés à
l’aide de leur chemin d’accès dans le registre. Ainsi, si le registre est partagé, on peut y accéder à
distance en incluant le nom de la machine dans le chemin d’accès.
Le partage du registre est comparable à un partage de répertoires ou de ressources.
Les données d’un fichier sont enregistrées dans un format interprétable par une ou plusieurs
applications. Il en va de même pour les clés de registre dont les valeurs sont compréhensibles par des
applications, des services du noyau et des clients du registre.

Clés racines
Les clés racines sont comparables à des volumes de disque, car elles résident à la base de
l’arborescence hiérarchique et ne dépendent d’aucun autre composant. Les six clés racines qui
constituent le registre NT sont indépendantes les unes des autres une fois chargées. Elles
s’appellent :

Ces clés racines sont qualifiables par des abrégés :

Clé Abrégé
HKEY_CLASSES_ROOT HKCR
HKEY_CURRENT_USER HKCC
HKEY_LOCAL_MACHINE HKLM
HKEY_USERS HKU
HKEY_CURRENT_CONFIG HKCC
HKEY_DYN_DATA HKDD

Le schéma qui suit représente une organisation de principe reprenant les différentes variantes
possibles ainsi que les constituants.

- 6 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

O r g a n is a t i o n d e p r i n c i p e e t c o n s t i t u a n t s

P o s t e d e t r a v a il

C lé R a c i n e C l é R a c i n e C l é r a c i n e

R U C H E S o u s c lé C o n t e n u d y n a m i q u e

S o u s c lé T y p e , v a le u r , n o m

T y p e , v a le u r , n o m
T y p e , v a le u r , n o m
T y p e , v a le u r , n o m
T y p e , v a le u r , n o m
S o u s c lé
R U C H E

R U C H E T y p e , v a le u r , n o m

R u c h e = f i c h i e r s u T r y l ep e d , i sv qa ul e e u r , n o m

T y p e , v a le u r , n o m

S o u s c lé

S o u s c lé

Une clé peut contenir des sous-clés et/ou des valeurs :

Sous-clés

De même qu’un dossier peut contenir un ou plusieurs dossiers, une clé peut contenir une ou plusieurs
sous-clés et ainsi de suite.

Nota : les clés racines ont toutes des sous-clés mais pas de clé parente, puisqu’elles sont situées à la
base de la hiérarchie.

Valeurs

Une valeur (une entrée du registre) est constituée de trois éléments :

• Un nom, servant d’identificateur pour NT et l’utilisateur. Comme pour les fichiers, il est impossible
que deux valeurs situées au même endroit (même clé parente) puissent porter le même nom. En
revanche, le même nom peut être utilisé dans des clés différentes. Elles sont dans ce cas
différenciées par leur chemin.

Exemple:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ClipArt Gallery \ 2.0 \ Import \
Office97 Clipart contient une valeur nommée CAG et une autre nommée VOLUMENAME.

Dans la clé HKEY …. \2.0\Import\Office97 Multimedia Clipart, on trouve aussi une valeur
nommée CAG et une VOLUME NAME mais le contenu est différent. On ne pourra pas
dupliquer la valeur CAG de la première clé pour la mettre dans la deuxième.

• Un type de donnée, indiquant le type de données de la valeur de la clé. Il en existe 11 différents


dans Windows NT 4.0 (voir en annexe les types de données).

- 7 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

• Un contenu assujetti aux règles et aux restrictions imposées par le type de donnée de la valeur.
Sa taille doit être inférieure à 64 ko. En pratique, les clés sont généralement de l’ordre de
quelques dizaines d’octets.

Remarques

Remarque 1 :

Une clé peut aussi contenir une ou plusieurs valeurs. Le fait de contenir une ou plusieurs
valeurs n’empêche pas la présence de sous-clé.

Exemple (ci-dessous) : la clé HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \


Browser \ CurrentVersion contient à la fois des valeurs (affichées à droite) et une sous-clé
NetRules, mais la clé HKEY_LOCAL_MACHINE \ SOFTWARE ne contient pas de valeurs,
uniquement des sous-clés.

Clé contenant à la fois des valeurs


et des sous-clés

Remarque 2 :

Il peut exister une valeur dans une clé sans nom. Elle est identifiée par (Défaut) ou <no name> par
les outils d’édition du registre (regedit.exe ou regedt32.exe) et peut donc être exploitable.

Ruches

Une ruche correspond à une sauvegarde d’une partie du registre (une clé et toute son
arborescence) sous forme de fichier sur le disque dur.

Windows NT prend en charge sept ruches communes : HARDWARE, SAM, SECURITY,


SOFTWARE, SYSTEM, DEFAULT, auxquelles s’ajoute une ruche pour l’utilisateur courant.

- 8 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

On peut retrouver la liste des ruches et l’emplacement des fichiers dans :

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ hivelist

Ci-dessus, la sous-clé du registre donne l’emplacement des fichiers des ruches sur le disque.
Ci-dessous, les fichiers des ruches sont situés dans \WINNT\system32\config.

Dans \WINNT\system32\config, les fichiers :


• .log contiennent les changements apportés à une ruche. S’il y a eu un
problème et si les modifications n’ont pas été inscrites dans la ruche correspondante, un
indicateur situé dans le fichier .log le signale. Au redémarrage, le système effectue une
fusion entre la ruche non modifiée et le fichier .log.
• .sav sont des copies des ruches (ils peuvent ne pas exister).
• .evt sont les fichiers qui contiennent les journaux de l’observateur
d’évènements.
• system.alt est une copie supplémentaire de la ruche system. Cette copie est
utilisée après une panne sévère (cas où le fichier system n’a pas pu être traité jusqu’à la
fin).

- 9 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

Liaisons

Il existe dans la base de registres l’équivalent du raccourci : la liaison. Une liaison fournit des
chemins et des noms directs vers des sous-clés. Comme pour un raccourci, l’ouverture d’une
« liaison » ouvre en réalité une autre branche de l’arborescence du registre.
Par exemple, la clé racine HKEY_CURRENT_USER est une liaison vers une sous clé de
HKEY_USERS (la sous-clé de HKU répondant à l’identificateur de sécurité, SID, de l’utilisateur actif).
En outre, les liaisons peuvent être définies dynamiquement, il est aisé de créer une liaison dont
la destination varie en fonction de paramètres conditionnels.

Structure générale et liaisons :

HKEY_CLASSES_ROOT

HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE
HARDWARE
SAM
SECURITY
SAM

SOFTWARE
\Classes\

SYSTEM
\CurrentControlSet\HarwareProfiles\Current\

HKEY_USERS
.DEFAULT
SID Utilisateur Actif

HKEY_CURRENT_CONFIG

HKEY_DYN_DATA

- 10 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

2.2. Structure de la base

Ce chapitre décrit les différentes clés racines, leurs liaisons et fonctions.

HKEY_LOCAL_MACHINE

Le rôle de HKEY_LOCAL_MACHINE est de consolider et de stocker l’ensemble des données


de configuration système pour l’ordinateur, notamment les informations indispensables au démarrage
de Windows NT. Elle contient également les paramètres de sécurité, de connexion réseau, des pilotes
de périphérique, les logiciels installés, etc. HKLM comprend cinq sous-clés importantes, dont chacune
joue un rôle essentiel dans la stabilité d’exécution de Windows NT.

HKEY_USERS

HKEY_USERS contient tous les paramètres de profils et d’environnement des utilisateurs de


l’ordinateur local. Ces paramètres concernent les options sélectionnées pour chaque utilisateur dans
l’éditeur de stratégie système, les variables de l’environnement pour l’utilisateur actif ainsi que les
paramètres personnels des différentes applications.
HKU contient deux sous-clés :
La première, nommée .Default est un groupe de paramètres qui seront attribués à toute
personne ouvrant une session et n’ayant pas de profil créé ou disponible sur l’ordinateur local.
La deuxième sous-clé est caractérisée par l’ID de sécurité (SID) de l’utilisateur actif, représenté
sous la forme d’une longue chaîne numérique. L’identificateur de sécurité permet d’identifier de
manière unique chaque objet système, utilisateur et ordinateur d’un réseau NT.

Le SID S-1-5-21-1117333033-827210503-1234778376-1532 se décompose de la façon


suivante :

Identificateur de sécurité (SID) : S-1-5-21-Y1-Y2-Y3-Y4


• S-1 : SID de révision 1
• 5-21 : autorité d'identification Windows NT
• Y1-Y2-Y3 : domaine de compte
• Y4 : ID relatif (RID) au domaine et au nom d'utilisateur ou
de groupe

Le SID est attribué une fois pour toute à un objet, même si celui-ci est renommé, ce qui permet
au système d’assurer le suivi et le bon fonctionnement des profils de comptes.
Les paramètres de sécurité associés au compte local créé sont enregistrés dans des sous-clés
de HKU lors de la première ouverture de session interactive de leur propriétaire (la clé est montée sur
la machine). Par contre, lors d’une connexion réseau à distance à travers un partage il y a ouverture
de session d’un utilisateur, mais, dans ce cas, la clé n’est pas montée (importée sur la machine
locale).

HKEY_DYN_DATA
La clé HKDD correspond à un ensemble de données dynamiques recréées à chaque
démarrage du système d’exploitation. Dans NT 4.0, elle contient uniquement des données de
performance. Aucune information contenue dans cette clé n’est écrite sur disque. En fait, chaque fois
qu’un programme (par exemple, l’analyseur de performances) a besoin d’une valeur dans l’une des
sous-clés de HKDD, le noyau de NT collecte les données dynamiques appropriées, crée une sous-clé
temporaire dans HKDD, puis les transmet par ce biais au demandeur. Les données n’existent pas
avant la requête et ne sont même pas conservées en mémoire.

- 11 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

HKEY_CURRENT_USER

HKEY_CURRENT_USER est une liaison vers la sous-clé de HKU correspondant à l’utilisateur


ayant ouvert une session sur l’ordinateur, caractérisée par le SID de cet utilisateur. Cette liaison
permet de simplifier grandement l’accès aux paramètres personnels de l’utilisateur car elle permet de
faire abstraction du SID dans toutes les manipulations.

Remarque : les directives Microsoft sont, pour les applications, de copier leurs paramètres de
fonctionnement dans HKLM et les paramètres utilisateurs dans HKCU. En d’autres termes, les
paramètres publics des utilisateurs d’une machine (ex : le chemin d’installation d’une application)
résident dans une clé locale alors que les paramètres privés, modifiables par les utilisateurs, sont
stockés ailleurs. Lors du chargement d’un profil, le système copie les données utilisateur dans HKU,
ces données sont alors présentes dans HKCU.

HKEY_CLASSES_ROOT

HKEY_CLASSES_ROOT est une liaison vers HKEY_LOCAL_MACHINE \ SOFTWARE \


Classes.
HKCR constitue une table de correspondance entre les extensions de fichiers et les
applications (associations). L’explorateur Windows, le gestionnaire de fichiers et IE 4.x font une
utilisation intensive de HKCR, tout comme les applications « conteneurs » et serveur OLE et les
applications acceptant les composants ActiveX.

Le fonctionnement de HKCR repose sur deux sous-clé associées à chaque type de fichier
répertorié : une sous-clé ‘extension’ et une sous-clé ‘application’. Les extensions de fichier sont
enregistrées sous leur nom. A ce niveau, on retrouve le nom de l’application associée sous forme
générique (txtfile, word.document.6, wordpad.document.1, …). Ensuite, au niveau du générique de
l’application, on retrouve la véritable association.

Exemples :
• Extension .txt : la sous-clé .txt présente une valeur par défaut txtfile. La sous
clé txtfile assure l’association par sa sous-clé shell \ open \ command où figure la
référence à notepad.exe.
• Extension .doc (on suppose installé le pack office 97) : la sous-clé .doc
présente une valeur par défaut Word.Document.8. La sous-clé Word.Document.8 assure
l’association par sa sous-clé shell \ open \ command avec winword.exe.

Remarque concernant la sous-clé ShellNew de la sous-clé extension.


Grâce à la valeur portée ici, le shell de NT détermine comment créer une nouvelle instance de
ce type de fichier lors d’une demande de l’utilisateur (dans l’explorateur : clic droit  nouveau).

HKEY_CURRENT_CONFIG

HKCC représente l’ensemble des données de configuration matériel de l’ordinateur. Il existe


naturellement une liaison entre HKCC et HKLM. La configuration matérielle actuelle se retrouve dans
HKLM \ SYSTEM \ CurrentControlSet \ HardwareProfiles \ Current. Le profil matériel correspond
au profil spécifié du démarrage de NT 4.0.

- 12 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

2.3. Sous-clés principales de HKEY_LOCAL_MACHINE

HKLM compte cinq sous-clés importantes. Chacune d’elle, sauf HARDWARE, correspond à
une ruche (4 ruches : sam, security, software, system).

HARDWARE
Les sous-clés de HKLM\HARDWARE sont générées lors du démarrage de NT. Elles n’existent
qu’en mémoire vive. Cette clé dispose de quatre sous-clés principales. Les interactions avec ces clés
sont assez limitées, puisque les valeurs ne sont pas modifiables. Pour les inspecter une à une, on
peut utiliser le programme de diagnostic de Windows NT (WINMSD .EXE)

 DESCRIPTION
Cette sous-clé est utilisée lors de la détection des périphériques. La procédure de démarrage
de Windows NT lui adjoint une entrée chaque fois qu’un périphérique est identifié.

Remarque : cette clé reconnaît les ports et non les périphériques qui y sont connectés.

 DEVICEMAP
Cette sous-clé associe la liste des périphériques de l’ordinateur aux pilotes disponibles. Chaque
pilote est lancé et tente de prendre le contrôle du périphérique qui lui est associé. En cas de réussite,
il s’approprie le périphérique dans DEVICEMAP.

 OWNERMAP
Cette sous-clé associe les périphériques de bus aux bus de l’ordinateur. La plupart des
machines acceptent plusieurs bus : des contrôleurs PCI, ISA, EISA et VLB peuvent coexister sur un
même PC. OWNERMAP enregistre les liens entre les cartes et les bus.

 RESOURCEMAP
Cette sous-clé fournit la liste des ressources disponibles : IRQ, ports DMA et emplacements
des contrôleurs de bus gérés par la couche HAL (hardware abstraction layer). Les pilotes y puisent les
informations dont ils ont besoin pour se réserver des ressources.

SAM
Cette sous-clé est une liaison vers SECURITY \ SAM visant à faciliter les nombreux accès aux
paramètres de sécurité.

- 13 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

SECURITY
La sous-clé SECURITY comporte deux groupes importants de données. Tout d’abord, elle
contient la base SAM (base ou copie locale) dans HKLM\SECURITY\SAM. Cette partie constitue la
base de contrôle d’accès de NT : liste de contrôle d’accès de chaque objet, liste de groupes et
comptes locaux et de domaine et permissions associées. Ses données ne sont accessibles que par
les services du noyau NT.
Le deuxième groupe de données, dans la sous-clé SECURITY, contient l’ensemble des
données des stratégies utilisateurs et des stratégies de groupe. Là encore, la modification directe
n’est pas possible, même sous le compte administrateur. Pour les modifier, on dispose de l’éditeur de
stratégie système.

SOFTWARE
Les applications et les composants systèmes stockent leurs paramètres de fonctionnement
dans les sous-clés de SOFTWARE. Par convention, cette dernière est suivie des noms du
constructeur et du programme, puis des paramètres de configuration.

Cela donne par exemple pour Internet Explorer 4 de Microsoft : HKLM \ SOFTWARE \
Microsoft \ IE4.

Il faut noter en particulier la présence de la clé HKLM \ SOFTWARE \ Microsoft \ Windows


NT. Dans cette clé sont stockés les paramètres de configuration de logiciels développés pour NT.

SYSTEM
La sous-clé SYSTEM est un ensemble de données critiques. Elle contient quatre sous-clés
principales :
 DISK
Cette sous-clé contient l’ensemble des données utilisées par l’administrateur de disques de NT.
Il y a donc, les affectations identificateur / lecteur, les miroirs, les agrégats…
 Select
Cette sous-clé permet de mémoriser les configurations de l’ordinateur, la dernière bonne
configuration (LKG : last known good) et la dernière configuration ayant empêché le démarrage de
Windows NT.
 Setup
Cette sous-clé permet de savoir si l’installation de Windows NT a été complètement terminée.
Le chargeur de Windows NT (Ntldr) est capable de déterminer si l’installation du système était en
cours lors du dernier démarrage. Dans ce cas, il relance la procédure (‘system setup in progress’).
 ControlSet
Différentes clés de ControlSet peuvent exister. Pour chaque configuration (ensemble de pilotes
et paramètres définis dans Panneau de configuration – système - profil matériel), une clé est créée.
Dans le cas où plusieurs configurations matérielles existent, ces clés sont appelées ControlSet001,
ControlSet002 etc. La configuration utilisée actuellement est disponible par la clé
CurrentControlSet.

SYSTEM \ CurrentControlSet
CurrentControlSet est une liaison vers la configuration ControlSetXXX choisie pour le
démarrage de l’ordinateur. elle comprend les sous-clés suivantes :

 Control
Elle contient l’ensemble des données statiques de la configuration : répertoires d’installation,
fuseau horaire …

- 14 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

 Enum
Les informations relatives aux périphériques détectés lors du démarrage de Windows NT sont
rangées dans cette sous-clé.
 Services
Cette sous-clé contient les paramètres de configuration de tous les services et pilotes du noyau
de Windows NT.
 Hardware Profiles
Elle contient les paramètres de profils matériels figurant dans HKCC.

- 15 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

3. Manipulations de la base de registres


Toutes les données importantes sont stockées dans le registre. A la suite d’une mauvaise
manipulation, il est possible d’empêcher le bon fonctionnement d’un logiciel sur NT (ceci étant un
problème mineur) ; mais on peut aussi bloquer complètement le système d’exploitation : écran bleu
avec vidage mémoire avant l’ouverture de session. Ainsi, avant de voir les outils de manipulations de
registres, il est important d’aborder les méthodes pour sauvegarder et restaurer le registre.

3.1. Sauvegarde / Restauration de la base de registres

RDISK
L’utilitaire RDISK.EXE permet de créer des « disquettes de réparation d’urgence » pour
Windows NT (abrégé ERD en anglais pour Emergency Repair Disk). N’étant dans aucun menu
standard, pour lancer ce programme, il faut cliquer sur Démarrer - Exécuter et saisir le paramètre
rdisk.exe (cet outil système se trouve dans le répertoire \WINNT\system32).
Remarque : il est à noter que cette commande passée sans paramètres ne permet pas de
sauvegarder efficacement la base de registre. La disquette de réparation obtenue ne contient
pratiquement aucune information sur la sécurité.

Pour créer une disquette de réparation efficace, il est nécessaire d’exécuter le programme avec
le paramètre /s.
La commande rdisk.exe /s entraîne une sauvegarde complète des ruches du registre dans le
répertoire \WINNT\repair.
Les fichiers security._ et sam._ sont créés alors que les fichiers software._ , system._ et
default._ existent même sans utiliser le paramètre /s. Chacun de ces fichiers compressés est à mettre
en parallèle avec la ruche de même nom. On ne peut pas intervenir directement sur ces fichiers du fait
de leur compression.

Avec RDISK, il est impossible de sauvegarder partiellement le registre.


De plus, certains logiciels utilisant intensivement le registre, les disquettes de sauvegarde sont
alors très vite inutiles car périmées. Après chaque modification importante, il faudrait recréer l’ERD.

Remarque : Si le mot de passe administrateur est changé et si l’on est obligé de restaurer le
registre à partir d’une ancienne disquette, c’est le mot de passe en vigueur au moment de la création
de la disquette qui fonctionnera.

Il est possible de mettre en place un automatisme de sauvegarde du registre (service planning


avec commande at). Pour cela on peut utiliser la commande rdisk.exe /s- .Contrairement à la
commande précédente, l’exécution de celle-ci ne demande pas l’insertion d’une disquette, elle se
contente de mettre à jour les fichiers dans le répertoire \WINNT\repair.

- 16 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

REGEDIT et REGEDT32

Avec ces deux outils, il est possible de sauvegarder ou de restaurer une partie du registre. Bien
sûr, comme ces outils fonctionnent sous l’interface graphique de Windows NT, cela ne permet pas de
réparer la base de registres lorsque le problème est vraiment grave (écran bleu au démarrage de
Windows NT).

 comment faire avec Regedit.exe

Pour sauvegarder une partie du registre, il


suffit de se placer sur la clé à la base de la branche
que l’on veut sauvegarder. Ensuite, on clique sur
Registre puis Exporter. On obtient alors un écran
similaire à celui sur la droite. En spécifiant un nom
de fichier puis en validant, on dispose alors d’un
fichier .reg.

Pour la restauration, ceci est encore plus simple.


Avec l’explorateur, en double-cliquant sur le fichier
.reg, les données sont automatiquement
fusionnées avec la base de registre.

ATTENTION : Ceci permet de recréer les clés et


les valeurs, mais ce n’est pas un moyen
efficace de sauvegarde car aucune information
sur la sécurité de clés n’est enregistrée.

Remarque : les fichiers .reg sont des fichiers texte. Il est possible de voir leur contenu et de les
éditer avec Notepad.exe. C’est là la principale utilité de la fonction exporter de Regedit.exe.

 comment faire avec Regedt32.exe

On sélectionne la clé que l’on désire sauvegarder. Dans le menu, Registre sélectionner
Enregistrer la clé. Cette fois-ci, il n’y a pas d’extension particulière au fichier. Ce fichier contient la clé
et tout son ensemble de sous-clés et de valeurs avec les droits affectés. Contrairement à
Regedit.exe, on a une véritable sauvegarde d’une partie du registre.

Pour restaurer la clé, il faut lancer RegEdt32, cliquer sur registre puis restaurer.

Regback.exe et Regrest.exe
Ces deux petits utilitaires sont fournis avec le Kit de Ressources Techniques de NT Serveur. Le
premier, regback.exe, permet de sauvegarder le registre, la restauration étant réalisée par le
deuxième, regrest.exe.
Ces programmes fonctionnent en ligne de commande. De plus, la faible taille du fichier
regrest.exe permet de le mettre sur une disquette.

- 17 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

REGBACK
La première syntaxe possible pour l’utilitaire regback.exe est :
regback nom_de_répertoire

Dans ce cas, toutes les ruches sont sauvegardées dans le répertoire « nom_de_répertoire ».
Les chemins au format UNC (universal naming convention) ne sont pas admis.

C:\NTRESKIT>regback \regsave
saving SECURITY to \regsave\security
saving SOFTWARE to \regsave\software
saving SYSTEM to \regsave\system
saving .DEFAULT to \regsave\default
saving SAM to \regsave\sam

***Hive = \REGISTRY\USER\S-1-5-21-681642391-1817262813-654838779-500
Stored in file
\Device\Harddisk0\Partition1\WINNT\Profiles\MonsieurX\NTUSER
.DAT
Must be backed up manually
regback <filename you choose> users S-1-5-21-681642391-1817286213-
654838779-500
A l’exécution, le programme indique le nom des ruches qu’il n’a pas réussi à sauvegarder (ici à
cause de son nom trop long). Il propose dans ce cas la commande à réaliser pour effectuer cette
sauvegarde, ce qui amène à la deuxième syntaxe pour Regback : celle de la sauvegarde partielle :
regback nom_de_fichier type_de_ruche nom_de_ruche

Les seuls types de ruches acceptés sont users et machine qui correspondent respectivement
à HKU et HKLM. Sans cette information, la sauvegarde échouera. Le nom_de_ruche correspond au
nom de la sous-clé de HKU (soit .default soit un SID) ou HKLM (software, system …)

REGREST
Avant tout, il faut souligner que le programme regrest.exe comporte quelques contraintes :
• Il ne fonctionne que sous Windows NT, car il fait sans cesse appel à la procédure
RegReplaceKey du système.
• Pour pouvoir l’utiliser, l’utilisateur doit avoir le droit de « restaurer les fichiers et les répertoires ». Il
doit donc être soit opérateur de sauvegarde, soit administrateur local.
• Les fichiers de sauvegarde créés par regback.exe doivent être situés sur le volume système.
• Enfin, après utilisation, il faut redémarrer l’ordinateur pour assurer l’intégrité des données.

La syntaxe pour l’utilitaire regrest.exe est :


regrest rép_de_sauvegarde rép_temporaire.

Le répertoire de sauvegarde est l’endroit où les fichiers générés par regback.exe ont été
placés. Le répertoire temporaire est l’endroit où regrest.exe va créer une copie des ruches actuelles
avant la restauration pour pouvoir faire marche arrière en cas de problème. Pour annuler la
restauration, il suffit de transférer les fichiers de ce répertoire temporaire vers le répertoire des ruches
et de relancer l’ordinateur.

Là encore, une deuxième syntaxe est possible pour éviter la restauration complète :
regrest nom_de_sauvegarde nom_de_répertoire type_de_ruche nom_de_ruche

Le nom de sauvegarde correspond au nom du fichier de sauvegarde généré par regback.exe,


avec le chemin pour accéder au fichier. Le nom de répertoire correspond à l’endroit où la copie de la
ruche va être placée. Les deux derniers paramètres, sont identiques à ceux utilisé avec regback.exe.

- 18 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

3.2. Manipulations avec Regedit.exe.

Des deux outils fournis en standard avec Windows NT pour modifier le registre, regedit.exe est
le plus limité :
• il ne connaît aucune information de sécurité sur la base de registre,
• Il ne sait afficher que trois types de valeur : double mot, chaîne et binaire (REG_DWORD,
REG_SZ et REG_BINARY). Toute valeur d’un autre type sera présentée sous forme binaire.

L’interface de regedit.exe peut être comparée à celle de l’explorateur NT. Sur la gauche, on
retrouve l’arborescence des clés et sur la droite, le type et la valeur de la clé sélectionnée. Toutefois, il
n’y a pas d’indication de présence de sous-clés, seul un double-clic sur une clé (sous-clé) permet
d’afficher les sous-clés dépendantes.

Parmi les fonctionnalités disponibles sous regedit.exe, on retrouve :


• L’importation et l’exportation de clé qui permet de créer ou de fusionner les fichiers
.reg.
• La création, la suppression, la copie et la modification de clé
• La possibilité d’accéder au registre d’une machine à distance en fournissant son nom
d’ordinateur
• Enfin la fonction la plus intéressante : la recherche de clé ou de valeur

Importation, exportation
Ces deux fonctions, disponibles dans le menu déroulant registre, permettent respectivement de
fusionner ou de créer un fichier .reg (cf. préced.). Les fichiers .reg sont des fichiers texte dans
lesquels on retrouve écrites les unes à la suite des autres les différentes clés et leurs valeurs.

Voici un exemple de sauvegarde de la clé HKEY_CURRENT_USER\Keyboard Layout :

REGEDIT4

[HKEY_CURRENT_USER\Keyboard Layout]

[HKEY_CURRENT_USER\Keyboard Layout\Preload]
"1"="0000040C"

[HKEY_CURRENT_USER\Keyboard Layout\Substitutes]

Entre crochets, on retrouve la clé ou la sous-clé identifiée par son chemin d’accès complet. Les
valeurs sont écrites à la suite.
Dans le cas présent, on a une sous-clé Preload contenant une valeur de type REG_SZ
appelée 1 et dont le contenu est 0000040C.
L’autre sous-clé Substitutes ne contient pas de valeur.

- 19 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

Modification de clés

Pour faire tout un ensemble d’actions sur les clés et les valeurs, différentes fonctions sont
disponibles dans le menu Edition.

Avec Nouveau, on peut créer une clé ou une valeur de type REG_BINARY, REG_SZ ou
REG_DWORD. Il est possible de créer la clé à n’importe quel endroit de l’arborescence sauf au
niveau de la racine (seule les 6 clés racines citées plus en avant peuvent être placées à l’origine).
Bien sûr, comme pour les droits sur des répertoires, il faut avoir les droits adéquats pour créer une clé
ou une valeur à un endroit donné. Mais il est impossible de visualiser les droits sur les clés.

Pour modifier le nom d’une clé ou d’une valeur, on dispose de la fonction Renommer (toujours
dans le menu Edition). Pour modifier le contenu d’une valeur, il suffit de double-cliquer sur son nom et
une fenêtre d’édition apparaît, différente pour chaque type de valeur.
Enfin, pour supprimer une valeur on peut soit utiliser la touche « suppr » du clavier soit utiliser la
fonction Supprimer du menu

Accéder à un registre distant

L’un des intérêts de l’éditeur de registre est


de pouvoir intervenir à distance sur différentes
machines. Cela simplifie grandement le travail de
l’administrateur pour mettre en place des stratégies
systèmes, configurer des ordinateurs ou autres.
Pour se connecter au registre d’un ordinateur
distant, il faut choisir dans le menu Registre la
fonction Se connecter au registre réseau. Ensuite
avec le bouton Parcourir, on choisit l’ordinateur
dont on veut manipuler le registre.

Les clés racines du registre distant


apparaissent alors sur la gauche comme sur la
figure ci-contre. Les restrictions sur ces clés sont
les restrictions que le propriétaire de l’ordinateur à
posé sur sa base de registre.

La recherche de clé ou de valeur

L’avantage de regedit.exe par rapport à regedt32.exe se situe sur le plan de la recherche.


Disponible dans le menu Edition, l’option Rechercher permet de trouver une chaîne de caractères
contenue, au choix, dans le nom d’une clé, le nom d’une valeur ou le contenu d’une valeur. A moins
de le préciser, le moteur de recherche affichera toutes les occurrences de clés, sous clés, valeurs ou
contenus qui contiennent (sauf en cas de coche de la case ‘mot entier seulement’) la chaîne de
caractères saisie.

L’avantage principal consiste dans le fait qu’une telle recherche peut balayer l’intégralité du
registre. Bien entendu, du fait des liaisons existantes au sein du registre, la même valeur ou clé pourra
se retrouver à plusieurs endroits.

- 20 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

3.3. Manipulations avec Regedt32.exe.

L’aspect de regedt32.exe est très différent de celui de regedit.exe. En effet, on ne retrouve


plus les six clés racines mise à la base du poste de travail sur la gauche, mais une fenêtre pour
chacune des clés.
Certaines clés apparaissent en grisé, ce sont des clés dont le contenu est, en principe,
inaccessible.

Le principal intérêt de
regedt32.exe par rapport
à regedit.exe, est de
prendre en compte tout
l’aspect sécurité
complétant ainsi toutes
les informations
nécessaires à la
reconstitution d’une clé en
terme de type de données.
De plus, regedt32.exe
n’est pas limité aux trois
type de données évoqués
en ce qui concerne
regedit.exe.

Sauvegarde et Restauration de clés

Les deux fonctions Enregistrer la clé et Restaurer sont disponibles dans le menu Registre de
regedt32.exe. C’est une véritable sauvegarde des données contrairement à regedit.exe qui se
contentait d’enregistrer le contenu des valeurs. Les fichiers choisis pour recevoir les données ainsi
sauvegardées n’ont pas d’extension particulière et la visualisation par un éditeur de texte ne donne
absolument aucune information.

Charger et décharger la ruche

Il est possible de charger et décharger une ruche avec l’outil regedt32.exe. Cette manipulation
rend possible les accès directs aux fichiers registres enregistrés dans le répertoire %SystemRoot
%\system32\config. L’utilisation de cette commande implique de bien connaître les manipulations
permettant de modifier les fichiers ruches.

Remarque : Pour pouvoir effectuer ces manipulations, le droit administrateur est insuffisant, il
faut avoir les droits « système d’exploitation ».

Accéder à un registre distant

Exactement comme pour regedit.exe, il est possible sous regedt32.exe d’ouvrir le registre
d’une machine distante. Il suffit d’utiliser l’entrée Choisir un ordinateur du menu Registre pour
obtenir l’ouverture des clés HKLM et HKU distantes. Par défaut, presque toutes les manipulations
sont possibles à distance. Cela est bien pratique mais représente une faille importante dans la
sécurité.

- 21 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

Informations sur la sécurité

De la même manière que NT apporte de la sécurité pour un système de fichier avec NTFS, tout
une base de sécurité peut être utilisée pour le registre.
La sécurité sur la base de registre est basé sur le même principe que les fichiers et répertoires
pour NTFS : pour chaque clé, on dispose d’un propriétaire et de permissions. Il est donc
compréhensible que le menu Sécurité de regedt32.exe soit composé de trois parties : Permissions ,
Audit et Propriétaire .

Les permissions
L’interface permettant de fixer les
permissions sur les clés est quasiment
identique à celle permettant de régler les
droits sur des répertoires. On y retrouve :

• Un fenêtre avec la liste des


utilisateurs (groupe d’utilisateurs) et leurs
droits respectifs ;
• Une liste permettant de changer le
type d’accès de l’utilisateur sélectionné
(contrôle total, lecture ou accès spécial) ;
• Des boutons pour Ajouter ou
Supprimer un utilisateur ou un groupe
• La case à cocher permettant de
propager les droits sur toutes les sous-clés
existantes

La fenêtre que l’on obtient en activant le bouton Ajouter est identique à celle obtenue avec les
droits sur les fichiers en NTFS. Par défaut, seule la liste avec les groupes est affichée. Il faut cliquer
sur le bouton Montrer les utilisateurs si l’on veut les détails.

L’accès spécial

Le type d’accès Accès Spécial


permet de mettre en évidence la totalité des
actions spécifiques applicables aux clés.

Ainsi, autoriser un accès en lecture à


une clé correspond à l’activation des options
suivantes :
• Retrouver la valeur (lecture
du contenu d’une valeur dans une clé)
• Enumérer les sous-clés
(permet de parcourir l’arbre des sous-
clés)
• Notifier (permet d’auditer les
droits)
• Lecture du contrôle (accès
en lecture seule aux informations
relatives aux droits)

Bien entendu, le type d’accès Contrôle total, proposé par défaut, correspond à l’application de
la totalité des options.

- 22 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

- 23 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

Pour une définition d’accès spécial, les actions disponibles sont (copie de l’aide en ligne) :

L’audit
Si vous êtes administrateur d’une machine
en NTFS, il est possible d’auditer certaines
actions sur des répertoires. Les événements
(succès ou échec) sont alors enregistrés dans le
journal de sécurité de l’observateur
d’événements. Il en va de même pour la base de
registre.

Les différentes actions peuvent être


auditées. On retrouve donc ces permissions avec
la fonction à enregistrer : le succès ou l’échec de
la manipulation de clé.

Le fonctionnement de cette fenêtre est le


même qu’avec des fichiers : on précise
l’utilisateur ou le groupe que l’on veut auditer
avec le bouton Ajouter. on coche ensuite les
actions à auditer dans la partie Evénements.

Propriétaire
Il est possible de s’approprier une clé comme on s’approprie des fichiers en NTFS. Il suffit pour
cela d’utiliser la fonction Propriétaire du menu Sécurité. On active alors le bouton Appropriation, si
l’on dispose des droits suffisants sur la clé sélectionnée. L’appropriation de clé ne change pas les
droits posés sur les clés, si ce n’est que le nouveau propriétaire peut à sa guise changer les droits des
clés lui appartenant.

- 24 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

4. Annexes

4.1. Les types de données

On dénombre 11 types de données pour les valeurs de la base de registre : sept types majeurs
et quatre types mineurs. Les applications n’utilisent que les types majeurs pour leurs données, les
mineurs n’étant utilisés que par le noyau Windows NT.

7 types majeurs : REG_DWORD, REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ,


REG_BINARY, REG_LINK et REG_RESSOURCE_REQUIREMENTS_LIST

4 types mineurs : REG_NONE, REG_DWORD_BIG_ENDIAN, REG_FULL_RESSOUR-


CE_DESCRIPTOR et REG_RESSOURCE_LIST

REG_DWORD
REG_DWORD (DWORD correspond à Double WORD, deux mots de 16 bits) est le type de
données le plus courant du registre. Une valeur REG_DWORD peut donc contenir une valeur allant
jusqu’à 232. Cependant de nombreuses clés du registre expriment des valeurs booléennes avec ce
type de données (nombreuses sont les clés ayant pour valeur 0 ou 1). Dans d’autre cas, la valeur
correspond juste à une quantité, comme la durée d’une réponse à une demande de duplication
réseau. Le plus difficile est de savoir à quoi correspond une valeur. Sans cette information, toute
modification est hasardeuse et risquée.

REG_SZ
Une valeur de type REG_SZ contient une chaîne de 3 octets dont le dernier (caractère final) est
nul. Enregistré au format REG_SZ, NT occupe trois octets : deux octets pour le contenu, et un autre
pour le caractère final.
Ce type de données est utilisé pour le stockage de nom en clair, de numéro de version… Le
contenu d’une valeur REG_SZ n’est pas limité aux seuls caractères ASCII ; tous les caractères
Unicode sont supportés.
Remarque : le dernier octet est pratiquement invisible, à moins de concevoir des programmes
pour gérer des valeurs de registre. Les outils d’édition du registre se chargent d’ajouter et de
supprimer le caractère final, en fonction du format de la valeur.

REG_MULTI_SZ
Ce type de données permet la concaténation de plusieurs chaînes de caractères Unicode dans
un bloc unique.
Par exemple, on peut l’utiliser pour enregistrer les chaînes d’identification de chacun des Bios
vidéo d’un PC dans la clé HKLM \ HARDWARE \ DESCRIPTION \ SYSTEM \ VideoBiosVersion.
Dans les applications, les valeurs REG_MULTI_SZ sont extraites par blocs, ceux-ci pouvant
être ensuite mis à jour.

REG_EXPAND_SZ
NT propose un certain nombre de variables systèmes utilisables avec des langages de
commandes, interprétés ou compilés, dans Panneau de configuration / Système / Environnement et
en ligne de commande. Par exemple, la variable d’environnement %SystemRoot% pointe vers le
répertoire racine de Windows NT.
On retrouve également cette fonctionnalité dans des valeurs de type REG_EXPAND_SZ. Ce
type s’apparente à REG_SZ.

- 25 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

Remarque restrictive : Supposons qu’une clé du registre de type REG_EXPAND_SZ ait pour
valeur %SystemRoot%\media, on pourrait estimer qu’un programme appelant ou le registre lui-même
soit capable de développer la variable imbriquée. Malheureusement, il n’en est rien ; l’opération doit
être réalisée manuellement.

REG_BINARY
Les programmeurs se servent couramment de représentations binaires. Par exemple, un
masque numérique binaire est un excellent moyen de figurer des fonctions ou des drapeaux activés
ou non-activés. Chaque bit correspond à un drapeau booléen, ce qui permet de stocker 32 drapeaux
indépendants les uns les autres dans un seul DWORD. Bien entendu, le format binaire est plus
souvent utilisé pour le stockage de données binaires arbitraires (images, clés de chiffrement, mots de
passe chiffrés, etc.).
Pour le registre NT, Microsoft a adopté le type REG_BINARY. Les données binaires sont
brutes, elles ne contiennent pas d’artifices comme les caractères finaux ou les extensions de chaînes.
Elles sont stockées et extraites en l’état.

REG_LINK
Le type REG_LINK permet de faire un liaison d’une valeur vers une clé. Le contenu d’une
valeur de ce type est une chaîne de caractères correspondant au chemin de la sous-clé pointée.

REG_NONE
REG_NONE est le type de données le plus simple : il s’agit d’un gigantesque zéro. Etant vide, il
indique seulement la présence d’une valeur. REG_NONE ne permet pas de stocker de données dans
une clé. Ce type est utile lorsque l’absence ou l’existence d’une clé détermine une action.
REG_NONE est peu utilisé.

REG_DWORD_BIG_ENDIAN
Ce type de valeur a été conçu pour pouvoir faire fonctionner NT sur différentes plates-formes.
Dans l’architecture INTEL (x86 et PENTIUM), le mode utilisé pour la représentation des données en
mémoire est le LITTLE ENDIAN : lorsqu’un mot est écrit en mémoire, c’est l’octet de poids faible qui
est écrit en premier. Cela donne pour la valeur hexadécimale 12345678, une représentation en
mémoire : 78 56 34 12.
Pour d’autres architectures, à base de processeurs Power Pc ou Alpha par exemple, la
représentation des données est de type BIG ENDIAN. C’est l’octet de poids fort qui est écrit en
premier : 12 34 56 78.
Le type REG_DWORD_BIG_ENDIAN est presque exclusivement présent sur ce deuxième type
de plates-formes.

REG_FULL_RESSOURCE_DESCRIPTOR
Les ordinateurs ne disposent pas de ressources infinies : sur plate-forme Intel, par exemple, le
nombre d’IRQ et les plages d’accès direct à la mémoire (DMA) sont restreints. Le système doit répartir
les ressources équitablement entre les programmes demandeurs. Dans Windows NT, ce service est
assuré par la couche d’abstraction matérielle (HAL).
Les informations concernant la disponibilité des ressources sont dans la clé HKLM\HARD-
WARE. Elles sont collectées lors du démarrage, puis placées en mémoire et associées aux clés du
registre. Du fait de leur complexité, ces informations sont stockées et consolidées dans un descripteur
de ressources : REG_FULL_RESSOURCE_DESCRIPTOR.

- 26 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

REG_RESSOURCE_LIST
Pour éviter la prolifération de valeurs de type REG_FULL_RESSOURCE_DESCRIPTOR (en
principe, une par ressource), le registre contient le type de données REG_RESSOURCE_LIST. Ce
type permet de regrouper des descripteurs de ressources interdépendants dans une même unité.

REG_RESSOURCE_REQUIREMENT_LIST
Aucune documentation n’a été trouvée pour l’instant sur ce type de données.

- 27 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

4.2. Outils du Kit de Ressources Techniques

Microsoft propose une suite d’outils, de commandes et de documentation distincte de la


distribution NT standard : le Kit de Ressources Techniques. Le Kit de Ressources Techniques se
présente sous deux versions :
• la version NT Workstation contenant des outils appropriés à la version de
même nom,
• la version NT Server intégrant des outils serveurs spécifiques en plus des
outils de NT Workstation. Ce kit regroupe des ressources pratiques et introuvables ailleurs.

Le kit de ressources NT 4.0 est en fait la reprise du kit de ressources pour NT 3.51 mais avec
l’ajout d’un nouvel outil : reg.exe . Cette nouvelle commande peut efficacement remplacer tout un
ensemble d’outils également présents dans le kit de ressources.

Le tableau ci-dessous dresse la liste des différents programmes concernant le registre contenus
dans le Kit de Ressources Techniques.

Outil Action Observations


Compreg.exe
Comparaison de valeurs du registre.
Ajout, suppression ou modification de clés ;
Reg.exe
chargement et déchargement de ruches, entre autres.
Sauvegarde et restauration de clés, de valeurs et de
Regback.exe et
ruches. Permet de restaurer tout ou partie d’un Voir précédemment
Regrest.exe
registre endommagé
Remplacement d’une valeur à partir de la ligne de  remplacé par
Regchg.exe
commande Reg.exe
Suppression d’une sous-clé de HKLM à partir de la  remplacé par
Regdel.exe
ligne de commande Reg.exe
Affichage, sous forme d’arborescence de répertoires,
Regdir.exe
d’une branche ou d’une sous-clé du registre
Affichage au format texte du contenu d’une clé, de
Regdmp.exe
ses sous-clés et valeurs
Regentry.hlp
Description de nombreuses clés et valeurs de NT
Recherche d’une valeur dans le registre ; fonctionne
Regfind.exe
comme grep
Ajout, suppression ou mise à jour de clés à l’aide d’un
Regini.exe
script personnalisé.
Définition de paramètre courant à partir d’une utiliser plutôt
Regkey.exe interface graphique ( connexion automatique, nombre l’éditeur de stratégie
de profils utilisateurs mis en cache…) système (POLEDIT)
 remplacé par
Regread.exe Lecture d’une clé de HKLM, et renvoi de valeurs.
Reg.exe
Définition des descripteurs de sécurité sur une clé et
Regsec.exe ses sous-clés ; très utile pour annuler les contrôle
d’accès par défaut trop permissifs.
Restauration d’une clé sauvegardée à l’aide de  remplacé par
Restkey.exe
SAVEKEY Reg.exe
Description relativement brève de chaque outil du kit
Rktools.hlp
de ressources
 remplacé par
Rregchg.exe Modification d’une valeur de clé distante
Reg.exe
Enregistrement de valeurs de clé en vue de leur  remplacé par
Savekey.exe
chargement ultérieur dans le registre. Reg.exe

- 28 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

Reg.exe : un véritable couteau suisse.

Reg.exe est pratiquement capable d’exécuter toutes les opérations de regedt32.exe à partir
de la ligne de commande. Cela va donc permettre l’utilisation de scripts pour modifier le registre.

Au point de vue syntaxe, la commande reg est immédiatement suivie d’une option incluse dans
la liste suivante : query, add, update, delete, copy, save, backup, restore, load et unload.

Dans l’exemple ci-dessous, reg est associé à query pour afficher la sous-clé de HKLM
spécifiée :
C:\ntreskit>reg query HKLM\Software\Qualcomm /s

Listing of [Software\Qualcomm]

[Eudora]
[Eudora\3.0.1]

Consulter des clés


REG QUERY [CléRacine\] Clé [\Valeur] [Machine] [/S]

CléRacine : Paramètre optionnel, il peut s’agir de :


• HKLM, HKCU, HKCR, HKU ou HKCC sur l’ordinateur local ;
• HKLM ou HKU sur un ordinateur distant.
Si ce paramètre est omis, la clé racine HKLM est sélectionnée par défaut

Clé Nom complet de la clé après CléRacine

Valeur Valeur de clé à interroger. Sans cette information, toutes les valeurs sont interrogées.

Machine Nom de l’ordinateur distant (par défaut ordinateur local)

/S Toutes les sous-clés de clés sont interrogées.

Ajouter des clés


REG ADD [CléRacine\] Clé [\Valeur=NouvelleValeur] [Machine] [TypeDonnées]

CléRacine : Paramètre optionnel, il peut s’agir de HKLM, HKCU, HKCR, HKU ou HKCC sur
l’ordinateur local ; HKLM ou HKU sur un ordinateur distant.
Si ce paramètre est omis, la clé racine HKLM est sélectionnée par défaut

Clé Nom complet de la clé après CléRacine

Valeur Nom de la valeur à créer sous Clé. Sans ce paramètre, la clé créée est vide.

NouvelleValeur Valeur mise dans le contenu de Valeur. Les chaînes de caractères doivent être
mises entre guillemets.

Machine Nom de l’ordinateur distant (par défaut ordinateur local)

TypeDonnées Type de données acceptées : REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ ou


REG_DWORD. Sans ce paramètre, le type REG_SZ est adopté.

- 29 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

Modifier des clés


REG UPDATE [CléRacine\] Clé\Valeur=NouvelleValeur [Machine]

CléRacine : Paramètre optionnel, il peut s’agir de HKLM, HKCU, HKCR, HKU ou HKCC sur
l’ordinateur local ; HKLM ou HKU sur un ordinateur distant.
Si ce paramètre est omis, la clé racine HKLM est sélectionnée par défaut

Clé Nom complet de la clé après CléRacine

Valeur Nom de la valeur à mettre à jour.

NouvelleValeur Valeur mise dans le contenu de Valeur. Les chaînes de caractères doivent être
mises entre guillemets.

Machine Nom de l’ordinateur distant (par défaut ordinateur local)

Supprimer une clé


REG DELETE [CléRacine\] Clé [\Valeur] [Machine]

CléRacine : Paramètre optionnel, il peut s’agir de HKLM, HKCU, HKCR, HKU ou HKCC sur
l’ordinateur local ; HKLM ou HKU sur un ordinateur distant.
Si ce paramètre est omis, la clé racine HKLM est sélectionnée par défaut

Clé Nom complet de la clé après CléRacine

Valeur Valeur de clé à supprimer. Sans cette information, toutes les valeurs et sous-clés.

Machine Nom de l’ordinateur distant (par défaut ordinateur local)

Copier des clés, des valeurs


REG COPY [CléRacineSource\] CléSource [\ValeurSource] [MachineSource]
[CléRacine Cible\] CléCible [\ValeurCible] [MachineCible]

CléRacine : Paramètre optionnel, il peut s’agir de HKLM, HKCU, HKCR, HKU ou HKCC sur
source & cible l’ordinateur local ; HKLM ou HKU sur un ordinateur distant.
Si ce paramètre est omis, la clé racine HKLM est sélectionnée par défaut.

CléSource Nom complet de la clé source après CléRacineSource.

ValeurSource Valeur de CléSource à copier. Si ce paramètre est omis, toutes les clés et les valeurs
de CléSource sont copiées.

Machine : Nom de l’ordinateur source ou destination (par défaut ordinateur local)


source & cible

CléCible Nom complet de la clé destination après CléRacineCible.

ValeurCible Nom de la valeur destination. Ce paramètre n’est pris en compte que lorsque
ValeurSource est spécifié.

- 30 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

Enregistrer et restaurer des clés


REG SAVE [CléRacine\] Clé NomFichier [Machine]

CléRacine : Paramètre optionnel, il peut s’agir de HKLM, HKCU, HKCR, HKU ou HKCC sur
l’ordinateur local ; HKLM ou HKU sur un ordinateur distant.
Si ce paramètre est omis, la clé racine HKLM est sélectionnée par défaut.

Clé Nom complet de la clé source. Toutes les valeurs, sous-clés et droits sur la clé seront
sauvegardées

NomFichier Nom du fichier qui recevra les données.

Machine : Nom de l’ordinateur (par défaut ordinateur local)

REG RESTORE NomFichier [CléRacine\] Clé [Machine]

Clé Nom complet de la clé destination après CléRacine.

NomFichier Nom du fichier sans extension contenant la clé sauvée.

Machine : Nom de l’ordinateur (par défaut ordinateur local)

Décharger et charger une ruche


REG UNLOAD [CléRacine\] Clé NomFichier [Machine]

CléRacine : Paramètre optionnel, il peut s’agir de HKLM ou HKU.


Si ce paramètre est omis, la clé racine HKLM est sélectionnée par défaut.

Clé Nom de la clé à décharger (clé au niveau immédiatement inférieur à CléRacine)

NomFichier Nom du fichier qui recevra les données.

Machine : Nom de l’ordinateur (par défaut ordinateur local)

REG LOAD NomFichier [CléRacine\] Clé [Machine]

CléRacine : Paramètre optionnel, il peut s’agir de HKLM ou HKU.


Si ce paramètre est omis, la clé racine HKLM est sélectionnée par défaut.

Clé Nom de la clé destination après CléRacine.

NomFichier Nom du fichier sans extension contenant la clé sauvée.

Machine : Nom de l’ordinateur (par défaut ordinateur local)

- 31 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

4.3. Fonctions de manipulation de la base de registres issues de l’API WIN32

Le tableau ci-dessous reprend les fonctions de manipulation du registre comprises dans


\winnt\system32\advapi32.dll (sécurité des objets, gestion du registre et consignation
d’événements). Il est à noter que ces fonctions sont relativement peu nombreuses. Les autres
fonctions disponibles dépendent de l’outil de développement utilisé.

RegLoadKey Ouvre une clé racine

RegOpenKeyEx Ouvre, si elle existe, une sous-clé du registre relative à une clé
ouverte
RegCreateKeyEx Ouvre si elle existe, ou crée une sous-clé relative à une clé
ouverte
RegCloseKey Ferme le Handle d’une clé précédemment ouverte

RegDeleteKey Supprime une clé d’un registre et ses descendants

RegUnLoadKey Supprime une clé racine d’un registre et ses descendants (local
ou réseau)
RegConnectRegistry Etablit une connexion au registre d’un ordinateur distant
( seulement sur HKLM ou HKU)
RegEnumKeyEx Enumère les sous-clés d’une clé

RegSaveKey Enregistre le contenu du registre à partir d’une clé ouverte dans


un fichier
RegRestoreKey Restaure récursivement les valeurs d’une sous-clé ouverte à partir
d’un fichier
RegReplaceKey Le Système remplace le fichier de sauvegarde récursive d’une clé
par un autre fichier. Pris en compte à l’ouverture de session
suivante
RegQueryInfoKey Communique les données d’une clé (nombre de sous-clés,
longueur nom le plus long, classe d’appartenance …)
RegSetKeySecurity Charge les informations de sécurité d’une clé dans une structure
de sécurité
RegGetKeySecurity Applique à une clé les informations de sécurité chargées dans une
structure de sécurité
RegFlushKey Ecrit immédiatement les modifications du registre

RegNotifyChangeKeyValue Indique quand une clé racine du registre ou une de ses sous-clés
a changé
RegSetValueEx Attribue une valeur à une clé avec de nouveaux types de données

RegQueryValueEx Communique une valeur nommée de sous-clé ( type de donnée


de la valeur, donnée)
RegEnumValue Enumère les valeurs d’une clé

RegDeleteValue Supprime une valeur d’une clé du registre

- 32 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

- 33 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

4.4. Quelques sous-clés

ICONES, MENUS

• Poste de travail : HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}


• Corbeille : HKCR\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}
• Voisinage réseau : HKCR\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}
• Imprimantes : HKCR\CLSID\{2227A280-3AEA-1069-A2DE-08002B30309D}

• Icône, suppression de la flèche de raccourci :


HKCR\lnkfile et HKCR\piffile ; Supprimer l’entrée IsShortCut

• Sous menu Panneau de configuration dans le menu Démarrer :


Cliquer avec le bouton droit sur le bouton Démarrer, choisir Ouvrir, le dossier Menu Démarrer
s’ouvre. Créer alors le dossier suivant (attention au point) :
Panneau de configuration.{21EC2020-3AEA-1069-A2DD-08002B30309D}

• Sous menu Imprimantes dans le menu Démarrer :


Suivre la même méthode que ci-dessus avec le CLSID des imprimantes.

• Commande commune à tous les types de fichiers non associés, automatisation de Ouvrir avec :

Clé / sous-clé Nom Données

HKCR\Unknown\shell\ (Défaut) (valeur non définie)

Nom de l’entrée de menu contextuel (clic droit)


HKCR\Unknown\shell\view\ (Défaut)
ex : Ouvrir dans bloc notes
Chemin de l’application
HKCR\Unknown\shell\view\command (Défaut)
Ex : C:\winnt\notepad.exe %1

HKCR\Unknown\shell contient en principe une sous-clé openas qu’il n’y a pas lieu de supprimer.
Celle-ci correspond à Ouvrir avec… .

PARAMETRES

• Paramètres de Windows NT :
HKLM\Software\Microsoft\Windows NT\CurrentVersion

• Paramètres d’ouverture de session :


HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

• Désinstallation d’applications, références :


HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\nom d’application

• Installation de Windows NT, description des composants :


HKLM\Software\Microsoft\Windows\CurrentVersion\Setup
HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\BaseWinOptions
HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OptionalComponents
HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OptionalComponents\composant

- 34 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

MODIFICATIONS, RESTRICTIONS

• Pavé numérique (verrouillage) :


HKCU\ControlPanel\Keyboard (utilisateur courant)
HKU\.DEFAULT\ControlPanel\Keyboard (hors session)
DWORD : InitialKeyboardIndicator
Valeur : 0 clavier déverrouillé, 2 clavier verrouillé

• Rafraîchissement automatique de l’explorateur :


HKLM\CurrentControlSet\Control\Update
DWORD : UpdateMode
Valeur : différée (défaut) 0x00000000, immédiate 0x00000001

• Programmes exécutés au démarrage de Windows NT (certaines sous-clés peuvent ne pas être


présentes) :
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKU\ sid utilisateur \Software\Microsoft\Windows\CurrentVersion\Run
HKU\ sid utilisateur \Software\Microsoft\Windows\CurrentVersion\RunOnce
HKU\ sid utilisateur \Software\Microsoft\Windows\CurrentVersion\RunOnceEx

• Restriction des droits de modification des types de fichiers (Explorateur / Affichage / Options /
Types de fichiers) :

HKCR\type de fichier ; DWORD : EditFlags ; Valeurs (hexa) combinables par un OU logique :

0001 masque le type dans la liste des extensions enregistrées


0008 Désactive le bouton Modifier dans l’onglet Type de fichiers
0010 Désactive le bouton Supprimer dans l’onglet Type de fichiers
0020 Désactive le bouton Nouveau dans la fenêtre Modification du type de fichiers
0040 Désactive le bouton Modifier dans la fenêtre Modification du type de fichiers
0080 Désactive le bouton Supprimer dans la fenêtre Modification du type de fichiers
0100 Désactive la zone Description du type dans la fenêtre Modification du type de fichiers
0200 Désactive le bouton Changer d’icône dans la fenêtre Modification du type de fichiers
0400 Désactive le bouton Définir par défaut dans la fenêtre Modification du type de fichiers

- 35 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

4.5. Résumé en quelques tableaux

Type de valeurs du registre

Valeur Description
REG_NONE Pas de type de valeur
REG_SZ Chaîne UNICODE terminée par un caractère nul
REG_EXPAND_SZ Chaîne UNICODE terminée par un caractère nul, pouvant
avoir des variables d’environnement intégrées
REG_BINARY Données binaires de longueur arbitraire
REG_DWORD Nombre 32 bits
REG_DWORD_BIG_ENDIAN Nombre 32 bits, octet de poids fort en premier
REG_LINK Lien symbolique UNICODE
REG_MULTI_SZ Ensemble de chaîne UNICODE
REG_RESSOURCE_LIST Description des ressources matérielles
REG_FULL_RESSOURCE_DESCRIPTOR Description des ressources matérielles
REG_RESSOURCE_REQUIREMENT_LIST Ressources nécessaires

Clés racine du registre

Clés racines Descriptions Liens


HKEY_CURRENT_USER Informations relatives à l’utilisateur connecté Sous-clé de HKEY_USERS corres-
pondant à l’utilisateur connecté
HKEY_USERS Contient des sous-clés pour tous les Pas de lien
comptes d’utilisateurs locaux
HKEY_CLASSES_ROOT Contient des informations sur l’association HKEY_LOCAL_MACHINE\SOFTWA
de fichiers et la synchronisation OLE RE\Classes
HKEY_LOCAL_MACHINE Toutes les informations de configuration du Pas de lien
système dynamiques et statiques
HKEY_DYN_DATA Compteurs de performance Pas de lien
HKEY_CURRENT_CONFIG Informations sur la configuration matérielle HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\HardwareProfiles\
Current

Sous-clés de HKEY_CURRENT_USER

Sous-clé Description
AppEvents Associations son / évènement
Console Paramétrage des fenêtres appelées par raccourcis (par ex.
largeur, hauteur, couleur)
Control Panel Paramétrage de l’écran de veille, thèmes du bureau, clavier et
souris.
Environnement Définitions des variables d’environnement
Keyboard Layout Paramétrage national de l’agencement du clavier
Network Mapping et paramétrage des périphériques de réseau
Printers Paramétrage des connexions d’imprimantes
Software Préférences logicielles propres à l’utilisateur
UNICODE Program Groups Définitions des groupes du menu Démarrer propres à l’utilisateur
Windows 3.1 Migration Status Données d’état des fichiers pour les systèmes passant de
Windows 3.x à NT 4.0

- 36 / 37 -
ESAT/DMSI La base de registre sous Windows NT 4.0

Sous-clés de HKLM\SYSTEM\CurrentControlSet
Sous-clé Description
Control Paramètres d’analyse de performances et de configuration de NT
Enum Informations recueillies lorsque les drivers et les services sont
activés.
Hardware Profiles Informations de configuration relatives à l’affichage
Service Contrôle du démarrage et des erreurs pour les drivers de
périphériques et les services

Valeurs et sous-clé des services


Valeur Description
DisplayName Nom apparaissant dans les applets Services et Periphériques du
Panneau de configuration
ImagePath Chemin d’accès au fichier du service ou du driver s’il ne se trouve
pas dans %SystemRoot%\System32\Drivers
ErrorControl Indique l’action que NT va entreprendre si le service ou le
périphérique signale une erreur lorsqu’il démarre
Start 0 = Boot Start (drivers de base)
1 = System Start (écran bleu)
2 = Auto Start ( après le démarrage de Win32 -
approximativement lorsque l’invite du logon apparaît)
3 = Démarrage à la demande
4 = Désactivé
Type Driver en mode Kernel, Système de fichier, Service Win32…
Group, Tag Contrôle l’ordre de chargement des drivers Boot Start et System
Start
DependOnService, DependOnGroup Contrôle l’ordre de chargement des drivers Auto Start
Parameters Enregistre les paramètres privés dépendant des drivers et des
services

- 37 / 37 -