본문 바로가기

하이브 구조

Registry (7) 이번에는 하이브 빈 보다 더 작은 논리적 저장단위인 셀에 대해서 알아 볼 것이다. [셀] 셀이란, 하이브 빈 보다 더 작은 논리적 저장단위이며 실제 레지스트리 데이터를 저장할 때 사용되는 단위는 셀이다. 셀 헤더에는 셀의 전체 길이가 저장되어 있으며, 이 값은 무조건 8바이트의 배수이어야 한다. 셀에는 5가지 종류가 있다. 지금부터 5가지 셀에 대해서 알아볼 것이다. [Key cell] 레지스트리의 키를 가지고 있는 셀로, '키 노드(Key node)'라고도 불린다. 이 셀에는 가장 최근에 키를 수정한 시간이 기록된다. 시그니처는 키노드의 경우 'nk', 키 링크의 경우 'lk'로 정해져있다. 각 오프셋에 대한 정보는 아래 이미지에 나와 있다. [그림 1 - key cell offset] 참고로 셀의 크.. 더보기
Registry (6) 지금까지는 레지스트리의 구조를 알아 봤다면 이젠 각 하이브들의 구조를 알아볼 차례이다. 하이브의 구조를 파악함으로써 비할당영역이나, 메모리등에서 하이브를 추출(카빙)할 수 있게 되고, 해당 하이브가 어떠한 이름을 가지고 있는지 어떠한 데이터를 가지고 있는지 파악 할 수 있게 된다. 하이브의 파일 구조 베이스블록, 하이브빈, 셀, 셀맵으로 이루어져 있다. 이해가 빠르도록 그림으로 표현하자면 아래와 같다. [그림 1 - 하이브 가식화] 이제 위에서 나온 것들을 하나씩 상세히 분석할 것이다. [블록] 하이브는 파일 시스템이 클러스터라 불리는 논리적 저장 단위를 사용하는 블록이라는 논리적 단위를 사용한다. 블록의 크기는 4킬로바이트이며, NTFS에서의 일반적인 클러스터 크기와 같다. 파일시스템의 경우 클러스터가.. 더보기