다음을 통해 공유


!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 **** 주소
레지스트리 키 값 구조를 표시합니다. 주소 는 값의 주소를 지정합니다.

valuelist **** HiveAddress **** KeyNodeAddress
지정된 키 노드의 값 목록을 표시합니다. HiveAddress 는 하이브의 주소를 지정합니다. KeyNodeAddress 는 키 노드의 주소를 지정합니다.

하위 키 목록 **** HiveAddress **** KeyNodeAddress
지정된 키 노드의 하위 키 목록을 표시합니다. HiveAddress 는 하이브의 주소를 지정합니다. KeyNodeAddress 는 키 노드의 주소를 지정합니다.

baseblock **** HiveAddress
하이브의 기본 블록(하이브 헤더라고도 함)을 표시합니다. HiveAddress 는 하이브의 주소를 지정합니다.

seccache **** HiveAddress
Hive에 대한 보안 캐시를 표시합니다. HiveAddress 는 하이브의 주소를 지정합니다.

hashindex **** [HiveAddress] **** HashKey
해시 키에 대한 해시 인덱스 항목을 계산합니다. HiveAddress 는 하이브의 주소를 지정합니다. HashKey 는 키를 지정합니다.

대상 컴퓨터가 Windows 7 이상을 실행하는 경우 HiveAddress 가 필요합니다.

openkeys {HiveAddress|0}
Hive에 열려 있는 모든 키를 표시합니다. HiveAddress 는 하이브의 주소를 지정합니다. 대신 0을 사용하면 전체 레지스트리 해시 테이블이 표시됩니다. 이 표에는 레지스트리의 열려 있는 모든 키가 포함되어 있습니다.

findkcb **** FullKeyPath
레지스트리 경로에 해당하는 레지스트리 키 제어 블록을 표시합니다. FullKeyPath 는 전체 키 경로를 지정합니다. 이 경로는 해시 테이블에 있어야 합니다.

hivelist
각 하이브에 대한 자세한 정보와 함께 시스템의 모든 하이브 목록을 표시합니다.

보기 목록 **** HiveAddress
각 보기에 대한 자세한 정보와 함께 하이브에 대해 고정되고 매핑된 모든 보기를 표시합니다. HiveAddress 는 하이브의 주소를 지정합니다.

freebins **** HiveAddress
각 bin에 대한 자세한 정보와 함께 하이브에 대한 모든 사용 가능한 휴지통을 표시합니다. HiveAddress 는 하이브의 주소를 지정합니다.

freecells **** BinAddress
bin을 반복하고 그 안에 있는 모든 사용 가능한 셀을 표시합니다. BinAddress 는 bin의 주소를 지정합니다.

dirtyvector **** HiveAddress
하이브에 대한 더티 벡터를 표시합니다. HiveAddress 는 하이브의 주소를 지정합니다.

cellindex **** HiveAddress **** 인덱스
하이브의 셀에 대한 가상 주소를 표시합니다. HiveAddress 는 하이브의 주소를 지정합니다. 인덱 스는 셀 인덱스를 지정합니다.

freehints HiveAddress **** 스토리지 **** 표시
무료 힌트 정보를 표시합니다.

translist {RmAddress|0}
RM의 활성 트랜잭션 목록을 표시합니다. RmAddress 는 RM의 주소를 지정합니다.

uowlist TransactionAddress
트랜잭션에 연결된 UoW 목록을 표시합니다. TransactionAddress 는 트랜잭션의 주소를 지정합니다.

locktable KcbAddress ThreadAddress
관련 잠금 테이블 콘텐츠를 표시합니다.

convkey KeyPath
키 경로에 대한 해시 키를 표시합니다.

postblocklist
포스트블록이 게시된 스레드 목록을 표시합니다.

notifylist
시스템의 알림 블록 목록을 표시합니다.

ixlock LockAddress
의도 잠금의 소유권을 표시합니다. LockAddress 는 잠금의 주소를 지정합니다.

dumppool [s|r]
레지스트리 할당 페이징 풀을 표시합니다. 지정한 경우 레지스트리 페이지 목록이 임시 파일에 저장됩니다. r을 지정하면 레지스트리 페이지 목록이 이전에 저장된 임시 파일에서 복원됩니다.

DLL

Kdexts.dll

추가 정보

레지스트리 및 해당 구성 요소에 대한 자세한 내용은 Mark Russinovich 및 David Solomon의 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

이전 출력의 세 번째 하이브 주소(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 확장을 사용합니다.