※ 해당 글에 대해 무단 재배포 및 상업적으로 사용하실 수 없습니다.


레지스터(Register) 란 무엇인가?


- 마이크로소프트 윈도우 운영체제에서 운영체제와 응용프로그램 운영에 필요한 정보를 저장하기 위해 고안된 계층형 데이터베이스

- 부팅 과정부터 시작하여 Windows에 진입하는 작업 과정, 각종 프로그램들이 실행되는 모든 과정들이 레지스트리에 기록된 정보를 바탕으로 진행

- Windows 3.11, 95, 98, ME, NT, 2000, XP, 2003, Vista, 2008, 7, 2012. 8에서 사용

- 기본 구성 항목은 Key / Value로 구성되며 Value는 Name, Type, Data로 이루어짐

- 최상의 Hive Key(Root Key)는 Windows 2000/2003/XP/7는 5개로 구성되어 있으며 Windows 98 / ME는 6개로 구성


※ Hive 

- 레지스트리 정보를 저장하고 있는 물리적인 파일입니다.

- 데이터의 백업을 포함하는 파일을 지원하는 집합을 가진 레지스트리의 키, 하위, 가치관의 논리적 그룹입니다.

- 활성 시스템의 커널에서 하이브 파일을 관리합니다.(일반적인 방식으로는 접근이 불가합니다)



레지스트리 구조


1. Hive의 물리적 위치

- Hive에 저장된 모든 정보는 C:\WINDOWS\System32\config 폴더에 저장

- DEFAULT, SAM, SECURITY, SORTWARE, SYSTEM 으로 확장자 명이 없는 파일로 나누어져 보관된다.



2. 물리적 Hive Key 관련 정보

① DEFAULT

- 위치 : C:\WINDOWS\system32\config

- 하이드 : DEFAULT

- 관련 하이브 파일 : default, default.LOG, default.SAV

- 해당 레지스트리 키 : HKEY_USER/DEFAULT


② SAM

- 위치 : C:\WINDOWS\system32\config

- 하이브 : SAM

- 관련 하이브 파일 : SAM, SAM.LOG, SAM.SAV

- 해당 레지스트리 키 : HKEY_LOCAL_MACHINE/SECURITY/SAM

  HKEY_LOCAL_MACHINE/SAM


③ SECURITY

- 위치 : C:\WINDOWS\system32\config

- 하이브 : SECURITY

- 관련 하이브 파일 : SECURITY, SECURITY.LOG, SECURITY.SAV

- 해당 레지스트리 키 : HKEY_LOCAL_MACHINE/SECURITY


④ SOFTWARE

- 위치 : C:\WINDOWS\system32\config

- 하이브 : SOFTWARE

- 관련 하이브 파일 : software, software.LOG, software.SAV

- 해당 레지스트리 키 : HKEY_LOCAL_MACHINE/SOFTWARE


⑤ SYSTEM

- 위치 : C:\WINDOWS\system32\config

- 하이브 : SYSTEM

- 관련 하이브 파일 : system, system.LOG, system.SAV

- 해당 레지스트리 키 : HKEY_LOCAL_MACHINE/SYSTEM, HKEY_CURRENT_CONFIG


⑥ MEMORY

- 위치 : 휘발성 메모리(VOLATILE HIVE)

- 하이브 : 없음

- 관련 하이브 파일 : 없음

- 해당 레지스트리 키 : HKLM\Hardware, HKLM\SYSTEM\Clone


⑦ SID

- 위치 : 

XP : C:\Documents and Settings\[사용자명]

7 : C:\Users\[사용자명]

- 하이브 : SID

- 관련 하이브 파일 : NTUSER.DAT, NTUSER.DAT.LOG

- 해당 레지스트리 키 : HKEY_CURRENT_USER

  HKEY_USER (현재 로그온된 사용자 보안 식별자)


⑧ SID_CLASSES

- 위치 : C:\Documents and Settings\[사용자명]\Local Settings\

          Application Data\Microsoft\Windows

- 하이브 : SID_Classes

- 관련 하이브 파일 : Usrclasses.dat

- 해당 레지스트리 키 : HKEY_CLASSES_ROOT 하위 데이터의 일부


⑨ 기타

- 위치 : C:\WINDOWS\system32\config

- 하이브 : 없음

- 관련 하이브 파일 : Userdiff, Userdiff.LOG, System.ALT

- 해당 레지스트리 키 : 없음

※ Userdiff, Userdiff.LOG 파일은 Windows XP / 2003 에만 존재


※ System.alt는 Windows 2000에만 존재

- Windows 2000 '마지막으로 성공한 구성'으로 시스템 복원할 때 사용되며

Windows XP, 2003은 '마지막으로 성공한 구성'이 HKEY_LOCAL_MACHINE/SYSTEM/

ControlSet***(001,002등의 숫자) 키에서 가장 최근에 부팅 성곤한 정보를 담고

있는 키를 읽기 때문에 System.alt 파일이 없음


3. 레지스트리 최상위 루트 키

- 레지스트리의 최상위 루트 키(Hive Key)는 HKEY_CLASSES_ROOT, HKEY_CURRENT_USER,

HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG로 구성


◎ HKEY_CURRENT_USER(HKCU)

▷ 현재 로그온 된 사용자에 관련된 정보를 저장

(해상도, 테마, 윈도우 시작 시 자동 실행되는 프로그램 등)

▷ HKEY_USERS의 하위 키 중에서 현재 로그온 된 사용자에 해당하는 항목에 대한

단축경로

- Console: cmd.exe 실행창의 설정

- AppEvents: 제어판의 [사운드 및 오디오 장치 등록정보]

- Control Panel: 기타 제어판의 항목들

- Network: 네트워크 드라이브 연결 정보

- Printers: 프린터 연결 정보

- Software: 설치된 프로그램 정보-현재 사용자에 관련된 정보만

- System: 운영체제(윈도우)에 대한 정보-현재 사용자와 관련된 정보만


◎ HKEY_USERS(HKU)

- 시스템에 있는 모든 사용자와 그룹의 계정에 관련된 정보를 저장


◎ HKEY_CLASSES_ROOT

- 확장자에 관련된 정보와 연결 프로그램 정보(파일 연관성과 COM객체 등록 정보)

- HKEY_LOCAL_MACHINE\SOFTWARE\Classes항목과 HKEY_USERS\[SID]\Classes 항목에 대한 단축 경로


예) HKEY_CLASSES_ROOT\.avi\(기본값) Value의 Data가 avifile이므로

HKEY_CLASSES_ROOT\AVIFile\shell\open\command 키의 기본값에 실행파일이 등록


※ COM(Component Object Model)

- 다양한 언어로 만들어진 소프트웨어 컴포넌트들이 자신의 기능을 다른 소프트웨어와 공유하고 통합될 수 있도록 하는 이진 코드 레벨에서의 표준과 서비스를 총칭하는 말


◎ HKEY_CURRENT_CONFIG

▷ 현재 부팅된 윈도우가 사용하고 있는 하드웨어 프로필(Hardware Profiles)

- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware     

  Profiles\Current 항목에 대한 단축 경로


◎ HKEY_LOCAL_MACHINE

▷ 시스템에 설치된 소프트웨어와 하드웨어에 대한 정보, 운영체제에 관련된

   설정, 서비스 및 보안 관련 설정 등의 방대한 정보를 저장

- HARDWARE : 부팅 시 감지된 하드웨어 목록과 드라이버 정보

- SAM(Security Account Manager) : 사용자/그룹 계정에 대한 관리

- SECURITY : 보안 정책(주로 로컬 보안 정책)

- SOFTWARE : 윈도우에 설치된 응용프로그램에 대한 정보

- SYSTEM : 부팅 시 및 부팅 후에도 필요한 드라이버, 서비스, OS 설정 값


4. 레지스트리 형식

- MS의 regedit.exe를 이용하여 레지스트리 분석 가능



◎ KEY

- Hive Key(=Root Key)

- Sub Key


◎ Value

- Name/Type/Data

- Name이 없으면 (기본값) 이라고 표시

- Data가 없으면 (값 설정 안 됨) 이라고 표시


◎ Type( of Value)

 값 

데이터 형식 

설명 

0x00 

 REG_NONE

 데이터 형식 없음(종류 없음)

0x01 

 REG_SZ

 고정 길이 텍스트 문자열(UTF-16 문자열)

0x02 

 REG_EXPAND_SZ

 가변 길이 데이터 문자열

 (시스템 경로로 사용하는 UTF-16 문자열)

0x03 

 REG_BINARY

 이진 데이터

0x04 

 REG_DWORD

 데이터를 32비트(4바이트) 정수로 표현

0x04 

 REG_DWORD_LITTLE_ENDIAN

 32비트 정수로 표현(리틀 앤디안 방식)

0x05 

 REG_DWORD_BIG_ENDIAN

 32비트 정수로 표현(빅 앤디안 방식)

0x06 

 REG_LINK

 심볼릭 링크 유니코드 문자열

0x07 

 REG_MULTI_SZ

 공백, 콤마, 또는 다른 구분자로 분리되는 

 다중 문자열 (NULL문자로 끝나는 유니코드)

0x08 

 REG_RESOURCE_LIST

 리소스 목록을 저장하기 위해 설계된 일련의 중첩된  배열 (하드웨어 리소스 설명)

0x09 

 REG_FULL_RESOURCE_DESCRIPTOR

 물리적인 하드웨어 장치에서 사용하는 리소스 목록을  저장하기 위해 설계된 일련의 중첩된 배열

  (하드웨어 리소스 설명)

0x0A 

 REG_RESOURCE_REQUIREMENT_LIST

 가능한 하드웨어 리소스의 장치 드라이버 목록을 

 저장하기 위해 설계된 일련의 중첩된 배열

 (리소스 요구 사항)

0x0B 

 REG_QWORD

 데이터를 64비트(8바이트) 정수로 표현

0x0B 

 REG_QWORD_LITTLE_ENDIAN

 64비트 정수로 표현(리틀 앤디안 방식)








Posted by Gedor
,