Nt Ws Registre

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Nt Ws Registre as PDF for free.

More details

  • Words: 10,154
  • Pages: 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

- 2 / 37 -

Edition : janvier 2001

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é HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG HKEY_DYN_DATA

Abrégé HKCR HKCC HKLM HKU HKCC 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 P

C



R

a c i n e

U

C

R

S

R

u

c h

o

H

s t e

C

l é

u s

S c lé

T

y p e

,

v

a le

T

y p e

,

v

a le

R

U

C

H

E

R

U

C

H

E

=

o

E

T

e

t i o

f i c h i e

d

d

e

e

p

r i n c i p e

t r a v a

R

a c i n e

o

u s

c lé

o n

l é

t e n

u

a le

u r ,

n

o

m

y p e , n o m y p e , n o m S o u s

v

a le

u r ,

n

o

m

v

a le

u r ,

n

o

m

y p e

v

u r ,

n

o

m

s u T r y l ep e d , i sv qa ul e e u r ,

n

o

m

n

o

m

T

y p e

,

s t i t u a

n

r a c i n e

v

,

c o n

il C

C

e t

,

T u r , T u r ,

y p e

T r

n

d

y n

a

m

i q

u e

c lé

v

a le

a le

S

o

u s

c lé

S

o

u s

c lé

u r ,

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 -

t s

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 users S-1-5-21-681642391-1817286213654838779-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 sousclé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, CE_DESCRIPTOR et REG_RESSOURCE_LIST

REG_FULL_RESSOUR-

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\HARDWARE. 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 Compreg.exe Reg.exe Regback.exe et Regrest.exe Regchg.exe Regdel.exe Regdir.exe Regdmp.exe Regentry.hlp Regfind.exe Regini.exe Regkey.exe Regread.exe Regsec.exe Restkey.exe Rktools.hlp Rregchg.exe Savekey.exe

Action

Observations

Comparaison de valeurs du registre. Ajout, suppression ou modification de clés ; chargement et déchargement de ruches, entre autres. Sauvegarde et restauration de clés, de valeurs et de ruches. Permet de restaurer tout ou partie d’un registre endommagé Remplacement d’une valeur à partir de la ligne de commande Suppression d’une sous-clé de HKLM à partir de la ligne de commande Affichage, sous forme d’arborescence de répertoires, d’une branche ou d’une sous-clé du registre Affichage au format texte du contenu d’une clé, de ses sous-clés et valeurs

Voir précédemment  remplacé par Reg.exe  remplacé par Reg.exe

Description de nombreuses clés et valeurs de NT Recherche d’une valeur dans le registre ; fonctionne comme grep Ajout, suppression ou mise à jour de clés à l’aide d’un script personnalisé. Définition de paramètre courant à partir d’une utiliser plutôt interface graphique ( connexion automatique, nombre l’éditeur de stratégie de profils utilisateurs mis en cache…) système (POLEDIT)  remplacé par Lecture d’une clé de HKLM, et renvoi de valeurs. Reg.exe Définition des descripteurs de sécurité sur une clé et 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 SAVEKEY Reg.exe Description relativement brève de chaque outil du kit de ressources  remplacé par Modification d’une valeur de clé distante Reg.exe Enregistrement de valeurs de clé en vue de leur  remplacé par 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 : source & cible

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é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 : source & cible

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

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)

HKCR\Unknown\shell\view\

(Défaut)

Nom de l’entrée de menu contextuel (clic droit) ex : Ouvrir dans bloc notes

HKCR\Unknown\shell\view\command

(Défaut)

Chemin de l’application 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 0008 0010 0020 0040 0080 0100 0200 0400

masque le type dans la liste des extensions enregistrées Désactive le bouton Modifier dans l’onglet Type de fichiers Désactive le bouton Supprimer dans l’onglet Type de fichiers Désactive le bouton Nouveau dans la fenêtre Modification du type de fichiers Désactive le bouton Modifier dans la fenêtre Modification du type de fichiers Désactive le bouton Supprimer dans la fenêtre Modification du type de fichiers Désactive la zone Description du type dans la fenêtre Modification du type de fichiers Désactive le bouton Changer d’icône dans la fenêtre Modification du type de fichiers 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 REG_SZ REG_EXPAND_SZ

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

REG_BINARY REG_DWORD REG_DWORD_BIG_ENDIAN REG_LINK REG_MULTI_SZ REG_RESSOURCE_LIST REG_FULL_RESSOURCE_DESCRIPTOR REG_RESSOURCE_REQUIREMENT_LIST

Clés racine du registre Clés racines

Descriptions

HKEY_CURRENT_USER

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

HKEY_USERS HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_DYN_DATA HKEY_CURRENT_CONFIG

Liens

Sous-clés de HKEY_CURRENT_USER Sous-clé

Description

AppEvents Console

Associations son / évènement Paramétrage des fenêtres appelées par raccourcis (par ex. largeur, hauteur, couleur) Paramétrage de l’écran de veille, thèmes du bureau, clavier et souris. Définitions des variables d’environnement Paramétrage national de l’agencement du clavier Mapping et paramétrage des périphériques de réseau Paramétrage des connexions d’imprimantes Préférences logicielles propres à l’utilisateur Définitions des groupes du menu Démarrer propres à l’utilisateur Données d’état des fichiers pour les systèmes passant de Windows 3.x à NT 4.0

Control Panel Environnement Keyboard Layout Network Printers Software UNICODE Program Groups Windows 3.1 Migration Status

- 36 / 37 -

ESAT/DMSI

La base de registre sous Windows NT 4.0

Sous-clés de HKLM\SYSTEM\CurrentControlSet Sous-clé Control Enum Hardware Profiles Service

Description Paramètres d’analyse de performances et de configuration de NT Informations recueillies lorsque les drivers et les services sont activés. Informations de configuration relatives à l’affichage 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 DisplayName ImagePath ErrorControl Start

Type Group, Tag DependOnService, DependOnGroup Parameters

Description Nom apparaissant dans les applets Services et Periphériques du Panneau de configuration Chemin d’accès au fichier du service ou du driver s’il ne se trouve pas dans %SystemRoot%\System32\Drivers Indique l’action que NT va entreprendre si le service ou le périphérique signale une erreur lorsqu’il démarre 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é Driver en mode Kernel, Système de fichier, Service Win32… Contrôle l’ordre de chargement des drivers Boot Start et System Start Contrôle l’ordre de chargement des drivers Auto Start Enregistre les paramètres privés dépendant des drivers et des services

- 37 / 37 -

Related Documents

Nt Ws Registre
June 2020 0
I Dreamed Ws Nt Add
December 2019 2
Save A Nt Add To Ws
December 2019 1
The One-day Sale Ws Nt Add
December 2019 4
Dining 1 Copy Ws Nt Add
December 2019 2
Registre-se
April 2020 7