Compartir a través de


!reg

La extensión !reg muestra y busca en los datos de registro.

!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]

Parámetros

{querykey|q} **** FullKeyPath
Muestra subclaves y valores de una clave si la clave está almacenada en caché. FullKeyPath especifica la ruta de acceso de clave completa.

keyinfo HiveAddress **** KeyNodeAddress
Muestra subclaves y valores de un nodo de clave. HiveAddress especifica la dirección del subárbol. KeyNodeAddress especifica la dirección del nodo de clave.

Kcb **** Dirección
Muestra un bloque de control de clave de registro. Address especifica la dirección del bloque de control de claves.

knode **** Dirección
Muestra una estructura de nodo de clave de registro. Address especifica la dirección del nodo de clave.

kbody **** Dirección
Muestra una estructura de cuerpo de clave de registro. Address especifica la dirección del nodo de cuerpo. (Los cuerpos de clave de registro son los objetos reales asociados a los identificadores).

kvalue **** Dirección
Muestra una estructura de valor de clave de registro. Address especifica la dirección del valor.

valuelist **** HiveAddress **** KeyNodeAddress
Muestra una lista de los valores del nodo de clave especificado. HiveAddress especifica la dirección del subárbol. KeyNodeAddress especifica la dirección del nodo de clave.

subkeylist **** HiveAddress **** KeyNodeAddress
Muestra una lista de las subclaves del nodo de clave especificado. HiveAddress especifica la dirección del subárbol. KeyNodeAddress especifica la dirección del nodo de clave.

bloque **** baseHiveAddress
Muestra el bloque base de un subárbol (también conocido como hive header). HiveAddress especifica la dirección del subárbol.

seccache **** HiveAddress
Muestra la caché de seguridad de un subárbol. HiveAddress especifica la dirección del subárbol.

hashindex *** [HiveAddress] *** HashKey
Calcula la entrada de índice hash para una clave hash. HiveAddress especifica la dirección del subárbol. HashKey especifica la clave.

Nota Se requiere HiveAddress si el equipo de destino ejecuta Windows 7 o posterior.

openkeys {HiveAddress|0}
Muestra todas las claves abiertas de un subárbol. HiveAddress especifica la dirección del subárbol. Si se usa cero en su lugar, se muestra toda la tabla hash del registro; esta tabla contiene todas las claves abiertas del registro.

findkcb **** FullKeyPath
Muestra el bloque de control de clave del registro correspondiente a una ruta de acceso del registro. FullKeyPath especifica la ruta de acceso de clave completa; esta ruta de acceso debe estar presente en la tabla hash.

hivelist
Muestra una lista de todos los subárboles del sistema, junto con información detallada sobre cada subárbol.

viewlist **** HiveAddress
Muestra todas las vistas ancladas y asignadas de un subárbol, con información detallada para cada vista. HiveAddress especifica la dirección del subárbol.

freebins **** HiveAddress
Muestra todas las ubicaciones libres de un subárbol, con información detallada para cada ubicación. HiveAddress especifica la dirección del subárbol.

freecells **** BinAddress
Recorre en iteración una ubicación y muestra todas las celdas libres dentro de ella. BinAddress especifica la dirección de la ubicación.

dirtyvector **** HiveAddress
Muestra el vector desfasado de un subárbol. HiveAddress especifica la dirección del subárbol.

cellindex **** Índice de HiveAddress ****
Muestra la dirección virtual de una celda de un subárbol. HiveAddress especifica la dirección del subárbol. Index especifica el índice de celda.

freehints Pantalla de almacenamiento de **** HiveAddress ****
Muestra información de sugerencias gratuitas.

translist {RmAddress|0}
Muestra la lista de transacciones activas en un RM. RmAddress especifica la dirección del RM.

uowlist TransactionAddress
Muestra la lista de UoW adjuntos a una transacción. TransactionAddress especifica la dirección de la transacción.

locktable KcbAddress ThreadAddress
Muestra el contenido de la tabla de bloqueo pertinente.

convkey KeyPath
Muestra las claves hash para una ruta de acceso de clave.

postblocklist
Muestra la lista de subprocesos que tienen postbloqueos publicados.

notifylist
Muestra la lista de bloqueos de notificación en el sistema.

ixlock LockAddress
Muestra la propiedad de un bloqueo preventivo. LockAddress especifica la dirección del bloqueo.

dumppool [s|r]
Muestra el grupo paginado asignado por el registro. Si se especifica s la lista de páginas del registro se guarda en un archivo temporal. Si se especifica r la lista de páginas del registro se restaura a partir del archivo temporal guardado anteriormente.

Archivo DLL

Kdexts.dll

Información adicional

Para obtener información sobre el registro y sus componentes, consulte Microsoft Windows Internals por Mark Russinovich y David Solomon.

Comentarios

A continuación se muestra un ejemplo: En primer lugar, use !reg hivelist para obtener una lista de direcciones de subárbol.

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

Use la tercera dirección de subárbol en la salida anterior (fffff8a00004f010) como argumento para !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

Use la primera ruta de acceso de clave completa de la salida anterior (\REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM) como argumento para !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

Este es otro ejemplo:

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

En su lugar, para mostrar información clave del registro con formato, use la extensión !dreg.