!reg

The !reg extension displays and searches through registry data.

!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 は完全なキーパスを指定する。

keyinfoHiveAddress **** KeyNodeAddress
キー・ノードのサブキーと値を表示します。 HiveAddress はハイブのアドレスを指定します。 KeyNodeAddress はキー・ノードのアドレスを指定する。

kcb **** Address
レジストリキーのコントロールブロックを表示します。 Address はキー・コントロール・ブロックのアドレスを指定する。

knode **** Address
レジストリキーのノード構造を表示します。 住所 はキー・ノードのアドレスを指定する。

kbody **** Address
レジストリキーのボディ構造を表示する。 住所 はキー本体のアドレスを指定する。 (レジストリ・キー本体は、ハンドルに関連付けられた実際のオブジェクトである)。

kvalue **** Address
レジストリキーの値構造を表示します。 住所 は値のアドレスを指定する。

valuelist **** HiveAddress **** KeyNodeAddress
指定されたキー・ノード内の値のリストを表示する。 HiveAddress はハイブのアドレスを指定します。 KeyNodeAddress はキー・ノードのアドレスを指定する。

subkeylist **** HiveAddress **** KeyNodeAddress
指定されたキー・ノードのサブキーのリストを表示する。 HiveAddress はハイブのアドレスを指定します。 KeyNodeAddress はキー・ノードのアドレスを指定する。

baseblock **** HiveAddress
ハイブのベース ブロックを表示します ( ハイブヘッダー). HiveAddress はハイブのアドレスを指定します。

seccache **** HiveAddress
ハイブのセキュリティ キャッシュを表示します。 HiveAddress はハイブのアドレスを指定します。

hashindex **** [HiveAddress] **** HashKey
ハッシュキーのハッシュインデックスエントリを計算する。 HiveAddress はハイブのアドレスを指定します。 HashKey はキーを指定する。

NoteHiveAddress は、ターゲットコンピュータがWindows 7以降を実行している場合に必要です。

openkeys {HiveAddress|0}
ハイブ内の開いているキーをすべて表示します。 HiveAddress はハイブのアドレスを指定します。 このテーブルには、レジストリの開いているキーがすべて含まれている。

findkcb **** FullKeyPath
レジストリパスに対応するレジストリキーコントロールブロックを表示します。 FullKeyPath このパスはハッシュテーブル内に存在しなければならない。

hivelist
システム内のすべてのハイブのリストと、各ハイブの詳細情報が表示されます。

viewlist **** HiveAddress
ハイブのすべてのピン留めされたビューとマップされたビューを、各ビューの詳細情報とともに表示します。 HiveAddress はハイブのアドレスを指定します。

freebins **** HiveAddress
ハイブの空きビンをすべて表示し、各ビンの詳細情報を表示します。 HiveAddress はハイブのアドレスを指定します。

freecells **** BinAddress
ビンを反復処理し、その中のすべてのフリーセルを表示する。 BinAddress はビンのアドレスを指定する。

dirtyvector **** HiveAddress
ハイブのダーティ ベクトルを表示します。 HiveAddress はハイブのアドレスを指定します。

cellindex **** HiveAddress **** Index
ハイブ内のセルの仮想アドレスを表示します。 HiveAddress はハイブのアドレスを指定します。 Index はセルのインデックスを指定する。

freehintsHiveAddress **** Storage **** Display
フリーヒント情報を表示します。

translist {RmAddress|0}
RM 内のアクティブなトランザクションのリストを表示する。 RmAddress はRMのアドレスを指定する。

uowlistTransactionAddress
トランザクションに添付されている UoW のリストを表示します。 TransactionAddress はトランザクションのアドレスを指定する。

locktableKcbAddressThreadAddress
関連するロックテーブルの内容を表示します。

convkeyKeyPath
キー・パスのハッシュ・キーを表示する。

postblocklist
ポストブロックが投稿されたスレッドのリストを表示する。

notifylist
システム内の通知ブロックのリストを表示します。

ixlockLockAddress
インテント・ロックの所有権を表示する。 LockAddress はロックのアドレスを指定する。

dumppool [s|r]
レジストリに割り当てられたページドプールを表示する。 もし s が指定されると、レジストリページのリストは一時ファイルに保存される。 If r を指定すると、レジストリのページリストは、以前に保存した一時ファイルから復元される。

DLL

Kdexts.dll

追加情報

レジストリとその構成要素については、以下を参照のこと Microsoft Windows Internals マーク・ラシノビッチとデイヴィッド・ソロモン著。

解説

次に例を示します。 初使用 !reg hivelist をクリックして、ハイブのアドレスのリストを取得します。

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

先の出力の3番目のハイブ・アドレス(ffff8a00004f010)を、次の引数として使用する !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

の引数として、前の出力( \REGISTRYMACHINE\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 代わりにエクステンションを使用する。