Поделиться через


!reg

Расширение !reg отображает и выполняет поиск по данным реестра.

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

Параметры

{querykey|q} *** FullKeyPath
Отображает вложенные ключи и значения ключа, если ключ кэшируется. FullKeyPath указывает полный путь к ключу.

keyinfo HiveAddress KeyNodeAddress ****
Отображает вложенные ключи и значения узла ключа. HiveAddress указывает адрес куста. KeyNodeAddress указывает адрес узла ключа.

kcb **** Адрес
Отображает блок управления разделом реестра. Адрес указывает адрес блока управления ключом.

knode **** Адрес
Отображает структуру узла раздела реестра. Адрес указывает адрес узла ключа.

kbody **** Адрес
Отображает структуру текста раздела реестра. Адрес указывает адрес основного текста. (Тела разделов реестра являются фактическими объектами, связанными с дескрипторами.)

kvalue **** Адрес
Отображает структуру значений раздела реестра. Адрес указывает адрес значения.

список значений **** HiveAddress KeyNodeAddress ****
Отображает список значений в указанном узле ключа. HiveAddress указывает адрес куста. KeyNodeAddress указывает адрес узла ключа.

subkeylist **** HiveAddress KeyNodeAddress ****
Отображает список вложенных ключей указанного узла ключа. HiveAddress указывает адрес куста. KeyNodeAddress указывает адрес узла ключа.

baseblock **** HiveAddress
Отображает базовый блок для hive (также известный как заголовок hive). HiveAddress указывает адрес куста.

seccache **** HiveAddress
Отображает кэш безопасности для hive. HiveAddress указывает адрес куста.

hashindex *** [HiveAddress] **** HashKey
Вычисляет запись хэш-индекса для хэш-ключа. HiveAddress указывает адрес куста. HashKey задает ключ.

Примечание HiveAddress является обязательным, если целевой компьютер работает под управлением Windows 7 или более поздней версии.

openkeys {HiveAddress|0}
Отображает все открытые ключи в кусте. HiveAddress указывает адрес куста. Если вместо этого используется ноль, отображается вся хэш-таблица реестра; Эта таблица содержит все открытые разделы в реестре.

findkcb **** FullKeyPath
Отображает блок управления разделом реестра, соответствующий пути реестра. FullKeyPath указывает полный путь к ключу. Этот путь должен присутствовать в хэш-таблице.

hivelist
Отображает список всех кустов в системе, а также подробные сведения о каждом кусте.

список представлений **** HiveAddress
Отображает все закрепленные и сопоставленные представления для куста с подробными сведениями для каждого представления. HiveAddress указывает адрес куста.

freebins **** HiveAddress
Отображает все бесплатные ячейки для куста с подробными сведениями для каждого контейнера. HiveAddress указывает адрес куста.

freecells **** BinAddress
Выполняет итерацию по ячейке и отображает все свободные ячейки внутри него. BinAddress указывает адрес ячейки.

грязный ектор **** HiveAddress
Отображает грязный вектор для куста. HiveAddress указывает адрес куста.

cellindex **** Индекс HiveAddress ****
Отображает виртуальный адрес ячейки в кусте. HiveAddress указывает адрес куста. Индекс задает индекс ячейки.

фрихинты Отображение хранилища **** HiveAddress ****
Отображает сведения о бесплатном указании.

translist {RmAddress|0}
Отображает список активных транзакций в RM. RmAddress указывает адрес RM.

uowlist TransactionAddress
Отображает список UoW, подключенных к транзакции. TransactionAddress указывает адрес транзакции.

блокировка KcbAddress ThreadAddress
Отображает соответствующее содержимое таблицы блокировки.

convkey KeyPath
Отображает хэш-ключи для пути к ключу.

postblocklist
Отображает список потоков, на которых размещены postblocks.

список уведомлений
Отображает список блоков уведомлений в системе.

ixlock LockAddress
Отображает владение блокировкой намерения. LockAddress указывает адрес блокировки.

dumppool [s|r]
Отображает выделенный реестром пул страниц. Если задано значение s , список страниц реестра сохраняется во временном файле. Если задано значение r , список страниц реестра восстанавливается из ранее сохраненного временного файла.

DLL-библиотеки

Kdexts.dll

Дополнительная информация

Сведения о реестре и его компонентах см. в разделе "Внутренние компоненты Microsoft Windows" марком Руссиновичем и Дэвидом Соломоном.

Замечания

Ниже приведен пример. Сначала используйте !reg hivelist , чтобы получить список адресов hive.

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

Используйте третий адрес hive в предыдущих выходных данных (fff8a00004f010) в качестве аргумента для !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

Используйте первый полный путь к ключу в предыдущих выходных данных (\REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM) в качестве аргумента в !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

Вот еще один пример:

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

Чтобы отобразить отформатированные сведения о разделе реестра, используйте вместо этого расширение !dreg .