본문 바로가기

System

윈도우 레지스트리, 하이브 파일

레지스트리(Registry)

윈도우 레지스트리는 윈도우 운영체제에서 운영체제 및 프로그램 등에 필요한 정보들을 관리하기 위해 계층적으로 표현된 데이터베이스이다. 레지스트리는 윈도우 부팅 시 로그인, 서비스 실행, 응용 프로그램 실행, 사용자의 행위에 대한 모든 활동에 참여하고 그 정보를 기록 및 관리하는 것으로 거의 모든 윈도우 운영체제에서 사용된다. 레지스트리를 확인하는 방법은 [윈도우 + R > regedit.exe]를 실행하면 레지스트리 편집기가 실행되어 레지스트리 목록과 값을 수정할 수 있다. 레지스트리의 값을 수정하여 윈도우의 상세한 설정을 할 수 있으며 제어판 설정에서 노출되지 않는 부분까지 변경이 가능하다.

레지스트리 편집기

 

레지스트리는 계층형 데이터베이스로 Key, Value, Data Type, Data로 이루어져 있다. 키는 상위 레벨에서 하위 레벨 구조로 정의되어 있으며, 레지스트리가 어떤 정보를 가지고 있는지 나타낸다. 해당 키는 Value, Data Type, Data로 되어 있어서 키의 값과 데이터 타입, 어떤 데이터가 들어있는지를 알 수 있다.

레지스트리 구조

 

레지스트리 편집기를 처음 켰을 때 나오는 기본 키들이 있다.

레지스트리 루트 키

이 키들은 루트 키(Root Key)라고 하며 키들 중에서 가장 상위에 있는 키들이다. 루트 키는 하위에 있는 레지스트리들이 어떤 정보가 있는지 알려주는 것으로 레지스트리 정보를 일정한 기준으로 분류한다.

HKEY_CLASSES_ROOT 파일의 각 확장자에 대한 정보와 파일과 프로그램 간의 연결에 대한 정보가 들어있다.
HKEY_CURRENT_USER 여러 윈도우 설정과 프로그램 정보가 들어있다.
HKEY_LOCAL_MACHINE 설치된 하드웨어와 소프트웨어 설치 드라이버 설정에 대한 정보가 들어있다.
HKEY_USER 사용자에 대한 정보가 들어있다.
HKEY_CURRENT_CONFIG 디스플레이 설정과 프린트 설정에 관한 정보가 들어있다.

 

하이브(Hive) 파일

하이브는 레지스트리의 정보를 가지고 있는 물리적인 파일이다. 레지스트리 편집기는 하이브파일을 읽어서 보여주거나 변경하는 것으로 레지스트리와 관련된 모든 정보는 하이브 파일에 저장되어 있다. 하이브 파일은 일반적인 에디터로 변경하는 것은 불가능하고 커널에 의해서 관리된다. 하이브 파일은 SAM, SYSTEM, SOFTWARE, SECURITY, HARDWARE, COMPONENTS, BCD00000000 등 여러 파일들이 존재한다.

SYSTEM 시스템 부팅에 필요한 시스템 전역의 구성정보를 갖고있다.
SOFTWARE 시스템 부팅에 필요 없는 시스템 전녕 구성정보로 소프트웨어에 대한 정보를 갖고 있다.
SECURITY 시스템 보안 정책과 권한 할당 정보로 시스템 계정만 접근이 가능하다.
SAM 로컬 계정 정보와 그룹정보로 시스템 계정만 접근가능하다.
HARDWARE 시스템 하드웨어 디스크립션과 모든 하드웨어의 장치 드라이버 매핑 정보를 가지고 있다.
COMPONENTS 설치된 컴포넌트와 관련된 정보를 관리한다.

위와 같은 하이브파일은 'c:\windows\system32\config'에 존재한다. 해당 디렉토리에 있는 RegBack 이라는 디렉토리가 있는데 이 디렉토리는 하이브 파일의 백업본이 들어있다.

하이브 파일

 

레지스트리를 분석할 수 있게 도와주는 도구로 Registry Recon, REGA(Registry Analyzer) 등이 있다. 해당 분석 툴을 이용하여 레지스트리의 키와 값, 데이터를 파싱도 해주고 삭제된 레지스트리 값을 복원하거나 여러 행위에 대한 추출을 할 수 있다.

반응형