Partager via


!reg

L'extension !reg permet d'effectuer des recherches dans les données du registre et de les afficher.

!reg {querykey|q} FullKeyPath
!reg keyinfo HiveAddress KeyNodeAddress
!reg kcb Address 
!reg knode Address 
!reg kbody Address 
!reg kvalue Address 
!reg valuelist HiveAddress KeyNodeAddress 
!reg subkeylist HiveAddress KeyNodeAddress  
!reg baseblock HiveAddress 
!reg seccache HiveAddress 
!reg hashindex [HiveAddress]HashKey
!reg openkeys {HiveAddress|0}
!reg openhandles {HiveAddress|0} 
!reg findkcb FullKeyPath 
!reg hivelist 
!reg viewlist HiveAddress 
!reg freebins HiveAddress 
!reg freecells BinAddress 
!reg dirtyvector HiveAddress 
!reg cellindex HiveAddress Index
!reg freehints HiveAddress Storage Display 
!reg translist {RmAddress|0}
!reg uowlist TransactionAddress
!reg locktable KcbAddress ThreadAddress
!reg convkey KeyPath
!reg postblocklist
!reg notifylist
!reg ixlock LockAddress
!reg dumppool [s|r]

Paramètres

{querykey|q} **** FullKeyPath
Affiche les sous-clés et les valeurs d’une clé si celle-ci est mise en cache. FullKeyPath spécifie le chemin d’accès complet à la clé.

keyinfoHiveAddress **** KeyNodeAddress
Affiche les sous-clés et les valeurs d’un nœud de clé. HiveAddress spécifie l’adresse du hive. KeyNodeAddress spécifie l’adresse du nœud de clé.

kcb **** Address
Affiche un bloc de contrôle de clé de registre. Address spécifie l’adresse du bloc de contrôle de clé..

knode **** Address
Affiche une structure de nœud de clé de registre. Address spécifie l’adresse du nœud de clé.

kbody **** Address
Affiche une structure de corps de clé de registre. Address spécifie l’adresse du corps de clé. (Les corps de clé de registre sont les objets réels associés aux descripteurs.)

kvalue **** Address
Affiche une structure de valeur de clé de registre. Address spécifie l’adresse de la valeur.

valuelist **** HiveAddress **** KeyNodeAddress
Affiche une liste des valeurs dans le nœud de clé spécifié. HiveAddress spécifie l’adresse du hive. KeyNodeAddress spécifie l’adresse du nœud de clé.

subkeylist **** HiveAddress **** KeyNodeAddress
Affiche une liste des sous-clés du nœud de clé spécifié. HiveAddress spécifie l’adresse du hive. KeyNodeAddress spécifie l’adresse du nœud de clé.

baseblock **** HiveAddress
Affiche le bloc de base d’un fichier hive (également appelé en-tête hive). HiveAddress spécifie l’adresse du hive.

seccache **** HiveAddress
Affiche le cache de sécurité d’un hive. HiveAddress spécifie l’adresse du hive.

hashindex **** [HiveAddress] **** HashKey
Calcule l’entrée d’index de hachage d'une clé de hachage. HiveAddress spécifie l’adresse du hive. HashKey spécifie la clé.

À noter queHiveAddress est obligatoire si l’ordinateur cible exécute Windows 7 ou une version ultérieure.

openkeys {HiveAddress|0}
Affiche toutes les clés ouvertes dans un hive. HiveAddress spécifie l’adresse du hive. Si zéro est utilisé à la place, l'intégralité de la table de hachage de registre s’affiche ; cette table contient toutes les clés ouvertes dans le registre.

findkcb **** FullKeyPath
Affiche le bloc de contrôle de clé de registre correspondant à un chemin d’accès au registre. FullKeyPath spécifie le chemin d’accès complet à la clé ; ce chemin doit être présent dans la table de hachage.

hivelist
Affiche une liste de tous les hives du système, ainsi que des informations détaillées sur chaque hive.

viewlist **** HiveAddress
Affiche toutes les vues épinglées et mappées d'un hive, avec des informations détaillées pour chaque vue. HiveAddress spécifie l’adresse du hive.

freebins **** HiveAddress
Affiche tous les emplacements libres d'un hive, avec des informations détaillées pour chaque emplacement. HiveAddress spécifie l’adresse du hive.

freecells **** BinAddress
Itère dans un emplacement et affiche toutes les cellules libres à l’intérieur. BinAddress spécifie l’adresse de l'emplacement.

dirtyvector **** HiveAddress
Affiche le vecteur modifié d'un hive. HiveAddress spécifie l’adresse du hive.

cellindex **** HiveAddress **** Index
Affiche l’adresse virtuelle d'une cellule d'un hive. HiveAddress spécifie l’adresse du hive. Index spécifie l’index de la cellule.

freehintsHiveAddress **** Storage **** Display
Affiche des informations sur les indicateurs libres.

translist {RmAddress|0}
Affiche la liste des transactions actives dans un gestionnaire de ressources. RmAddress spécifie l’adresse du gestionnaire de ressources.

uowlistTransactionAddress
Affiche la liste des unités de travail attachées à une transaction. TransactionAddress spécifie l’adresse de la transaction.

locktableKcbAddressThreadAddress
Affiche le contenu pertinent de la table de verrous.

convkeyKeyPath
Affiche les clés de hachage d'un chemin de clé.

postblocklist
Affiche la liste des threads pour lesquels des blocs de publications sont publiés.

notifylist
Affiche la liste des blocs de notification dans le système.

ixlockLockAddress
Affiche la propriété d’un verrou d’intention. LockAddress spécifie l’adresse du verrou.

dumppool [s|r]
Affiche le pool paginé alloué au registre. If s est spécifié, la liste des pages de registre est enregistrée dans un fichier temporaire. Si r est spécifié, la liste des pages de registre est restaurée à partir du fichier temporaire précédemment enregistré.

DLL

Kdexts.dll

Informations supplémentaires

Pour plus d’informations sur le registre et ses composants, consultez Microsoft Windows Internals (Au cœur de Windows), de Mark Russinovich et David Solomon.

Notes

Voici un exemple. Pour commencer, utilisez !reg hivelist pour obtenir la liste des adresses des hives.

00: kd> !reg hivelist
## 

## |     HiveAddr     |Stable Length|    Stable Map    |Volatile Length|    Volatile Map    |MappedViews|PinnedViews|U(Cnt)|     BaseBlock     | FileName 

| fffff8a000014010 |       1000  | fffff8a0000140b0 |       1000    |  fffff8a000014328  |     0| fffff8a00001e000  | <NONAME>
| fffff8a000028010 |     a15000  | fffff8a00002e000 |      1a000    |  fffff8a000028328  |     0| fffff8a000029000  | SYSTEM
| fffff8a00004f010 |      14000  | fffff8a00004f0b0 |       c000    |  fffff8a00004f328  |     0| fffff8a000050000  | <NONAME>
| fffff8a000329010 |       6000  | fffff8a0003290b0 |          0    |  0000000000000000  |     0| fffff8a00032f000  | Device\HarddiskVolume1\Boot\BCD
| fffff8a0002f2010 |    4255000  | fffff8a0006fa000 |       6000    |  fffff8a0002f2328  |     0| fffff8a00036c000  | emRoot\System32\Config\SOFTWARE
| fffff8a000df0010 |      f7000  | fffff8a000df00b0 |       1000    |  fffff8a000df0328  |     0| fffff8a000df1000  | temRoot\System32\Config\DEFAULT
| fffff8a0010f8010 |       9000  | fffff8a0010f80b0 |       1000    |  fffff8a0010f8328  |     0| fffff8a0010f9000  | emRoot\System32\Config\SECURITY
| fffff8a001158010 |       7000  | fffff8a0011580b0 |          0    |  0000000000000000  |     0| fffff8a001159000  | \SystemRoot\System32\Config\SAM
| fffff8a00124b010 |      24000  | fffff8a00124b0b0 |          0    |  0000000000000000  |     0| fffff8a00124c000  | files\NetworkService\NTUSER.DAT
| fffff8a0012df220 |      b7000  | fffff8a0012df2c0 |          0    |  0000000000000000  |     0| fffff8a0012e6000  | \SystemRoot\System32\Config\BBI
| fffff8a001312220 |      26000  | fffff8a0013122c0 |          0    |  0000000000000000  |     0| fffff8a00117e000  | rofiles\LocalService\NTUSER.DAT
| fffff8a001928010 |      64000  | fffff8a0019280b0 |       3000    |  fffff8a001928328  |     0| fffff8a00192b000  | User.MYTESTCOMPUTER2\ntuser.dat
| fffff8a001b9b010 |     203000  | fffff8a001bc4000 |          0    |  0000000000000000  |     0| fffff8a001b9c000  | \Microsoft\Windows\UsrClass.dat
| fffff8a001dc0010 |      30000  | fffff8a001dc00b0 |          0    |  0000000000000000  |     0| fffff8a001dc2000  | Volume Information\Syscache.hve
## | fffff8a0022dc010 |     175000  | fffff8a0022dc0b0 |          0    |  0000000000000000  |     0| fffff8a0022dd000  | \AppCompat\Programs\Amcache.hve

Utilisez la troisième adresse hive dans la sortie précédente (fffff8a0004f010) comme argument pour !reg openkeys.

0: kd> !reg openkeys fffff8a00004f010

# Hive: \REGISTRY\MACHINE\HARDWARE

Index e9:    3069276d kcb=fffff8a00007eb98 cell=00000220 f=00200000 \REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM
Index 101:   292eea1f kcb=fffff8a00007ecc0 cell=000003b8 f=00200000 \REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM\MULTIFUNCTIONADAPTER
Index 140:   d927b0d4 kcb=fffff8a00007ea70 cell=000001a8 f=00200000 \REGISTRY\MACHINE\HARDWARE\DESCRIPTION
Index 160:   96d26a30 kcb=fffff8a00007e6f8 cell=00000020 f=002c0000 \REGISTRY\MACHINE\HARDWARE

# 0x4 keys found

Utilisez le premier chemin d'accès complet de clé dans la sortie précédente (\REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM) comme argument pour !reg querykey.

0: kd> !reg querykey \REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM

Found KCB = fffff8a00007eb98 :: \REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM

Hive         fffff8a00004f010
KeyNode      fffff8a000054224

[SubKeyAddr]         [SubKeyName]
fffff8a000060244     CentralProcessor
fffff8a00006042c     FloatingPointProcessor
fffff8a0000543bc     MultifunctionAdapter

[SubKeyAddr]         [VolatileSubKeyName]
fffff8a000338d8c     BIOS
fffff8a0002a2e4c     VideoAdapterBusses

 Use '!reg keyinfo fffff8a00004f010 <SubKeyAddr>' to dump the subkey details

[ValueType]         [ValueName]                   [ValueData]
REG_BINARY          Component Information         0x542AC - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
REG_SZ              Identifier                    AT/AT COMPATIBLE
REG_FULL_RESOURCE_DESCRIPTORConfiguration Data            ff ff ff ff ff ff ff ff 00 00 00 00 02 00 00 00 05 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 ff 03 00 00 3f 00 fe 00 02 00 81 00 fe 03 00 00 3f 00 fe 00 02 00 05 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 04 00 
REG_SZ              SystemBiosDate                07/18/07
REG_MULTI_SZ        SystemBiosVersion             HPQOEM - 20070718\0\0
REG_SZ              VideoBiosDate                 03/23/20
REG_MULTI_SZ        VideoBiosVersion              Hardware Version 0.0\0\0

Voici un autre exemple :

kd> !reg hivelist
## 

## | HiveAddr |Stable Length|Stable Map|Volatile Length|Volatile Map|MappedViews|PinnedViews|U(Cnt)| BaseBlock | FileName 

| e16e7428 |       2000  | e16e7484 |          0    |  00000000  |        1  |        0  |     0| e101f000  | \Microsoft\Windows\UsrClass.dat
| e1705a78 |      77000  | e1705ad4 |       1000    |  e1705bb0  |       30  |        0  |     0| e101c000  | ttings\Administrator\ntuser.dat
| e13d4b88 |     814000  | e146a000 |       1000    |  e13d4cc0  |      255  |        0  |     0| e1460000  | emRoot\System32\Config\SOFTWARE
| e13ad008 |      23000  | e13ad064 |       1000    |  e13ad140  |        9  |        0  |     0| e145e000  | temRoot\System32\Config\DEFAULT
| e13b3b88 |       a000  | e13b3be4 |       1000    |  e13b3cc0  |        3  |        0  |     0| e145d000  | emRoot\System32\Config\SECURITY
| e142d008 |       5000  | e142d064 |          0    |  00000000  |        2  |        0  |     0| e145f000  | <UNKNOWN>
| e11e3628 |       4000  | e11e3684 |       3000    |  e11e3760  |        0  |        0  |     0| e11e4000  | <NONAME>
| e10168a8 |     1c1000  | e1016904 |      15000    |  e10169e0  |       66  |        0  |     0| e1017000  | SYSTEM
## | e10072c8 |       1000  | e1007324 |          0    |  00000000  |        0  |        0  |     0| e1010000  | <NONAME>


kd> !reg hashindex e16e7428

CmpCacheTable = e100a000

Hash Index[e16e7428] : 5ac
Hash Entry[e16e7428] : e100b6b0

kd> !reg openkeys e16e7428

Index 68:  7bab7683 kcb=e13314f8 cell=00000740 f=00200004 \REGISTRY\USER\S-1-5-21-1715567821-413027322-527237240-500_Classes\CLSID
Index 7a1:  48a30288 kcb=e13a3738 cell=00000020 f=002c0004 \REGISTRY\USER\S-1-5-21-1715567821-413027322-527237240-500_Classes

Pour afficher les informations de clé de registre mises en forme, utilisez plutôt l’extension !dreg.