!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 **** 住所
レジストリのキー制御ブロックを表示します。 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 は、キーを指定します。
注 HiveAddress は、ターゲット コンピューターが 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 は、セルのインデックスを指定します。
freehints HiveAddress **** Storage **** Display
フリー ヒント情報を表示します。
translist {RmAddress|0}
RM 内のアクティブなトランザクションのリストを表示します。 RmAddress は、RM のアドレスを指定します。
uowlist TransactionAddress
トランザクションにアタッチされている UoW のリストを表示します。 TransactionAddress は、トランザクションのアドレスを指定します。
locktable KcbAddress ThreadAddress
関連するロック・テーブルの内容を表示します。
convkey KeyPath
キー パスのハッシュ キーを表示します。
postblocklist
ポストブロックが書き込まれたスレッドのリストを表示する。
notifylist
システム内の通知ブロックのリストを表示します。
ixlock LockAddress
インテント ロックの所有権を表示します。 LockAddress は、ロックのアドレスを指定します。
dumppool [s|r]
レジストリに割り当てられたページ プールを表示します。 s を指定した場合は、レジストリ ページのリストが一時ファイルに保存されます。 Ir を指定した場合は、レジストリ ページ リストが、以前に保存された一時ファイルから復元されます。
DLL
Kdexts.dll
追加情報
レジストリとその構成要素については、『Microsoft Windows Internals』 (Mark Russinovich および David Solomon 共著) を参照してください。
解説
次に例を示します。 まず、ハイブ アドレスのリストを取得するには、!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 番目のハイブ アドレス (fffff8a00004f010) を !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 拡張機能を使用します。