이번에는 하이브 빈 보다 더 작은 논리적 저장단위인 셀에 대해서 알아 볼 것이다.
셀에는 5가지 종류가 있다.
지금부터 5가지 셀에 대해서 알아볼 것이다.
참고로 셀의 크기는 셀의 기본구조라서 모든 셀에 공통적이다.
FL(lf), HL(lh) 타입의 엘리먼트라면 아래와 같은 오프셋을 가진다.
IR(ri), IL(li) 타입의 엘리먼트라면 아래와 같은 오프셋은 가진다.
Value-list cell은 Value cell들의 인덱스 목록을 가지고 있다. 오프셋은 다음과 같다.
list cell들의 경우 오프셋을 찾지 못하여 조금 더 공부가 필요할 듯하다.
참고로 키 노드의 시그니처 경우 약자를 따서 'nk'인데 순서가 오프셋에서 보면 순서가 뒤집어져 있다.
이 이유는 해당 시그니처가 헥스값으로 저장되어 kn -> nk로 보이는 것이다.
[셀]
셀이란, 하이브 빈 보다 더 작은 논리적 저장단위이며 실제 레지스트리 데이터를 저장할 때 사용되는 단위는 셀이다.
셀 헤더에는 셀의 전체 길이가 저장되어 있으며, 이 값은 무조건 8바이트의 배수이어야 한다.
셀에는 5가지 종류가 있다.
지금부터 5가지 셀에 대해서 알아볼 것이다.
[Key cell]
레지스트리의 키를 가지고 있는 셀로, '키 노드(Key node)'라고도 불린다. 이 셀에는 가장 최근에 키를 수정한 시간이 기록된다. 시그니처는 키노드의 경우 'nk', 키 링크의 경우 'lk'로 정해져있다.
각 오프셋에 대한 정보는 아래 이미지에 나와 있다.
[그림 1 - key cell offset]
참고로 셀의 크기는 셀의 기본구조라서 모든 셀에 공통적이다.
[Value cell]
해당 셀은 value와 data, data의 타입이 들어 있는 셀이다. 시그니처는 'vk'이며, 해당 셀의 구조는 아래 이미지와 같다.
[그림 2 - value cell offset]
[list cell 들]
Subkey-list cell은 부모 키가 있는 모든 서브키 셀을 가리키는 셀 인덱스 목록으로 이주어져 있으며 두 종류의 엘리먼트 셀의 결합으로 서브키들의 인덱스를 구성한다.
Subkey-list cell의 offset 정보는 다음과 같다.
[그림 3 - subkey-list cell offset]
FL(lf), HL(lh) 타입의 엘리먼트라면 아래와 같은 오프셋을 가진다.
[그림 4 - FL, HL 타입의 offset]
IR(ri), IL(li) 타입의 엘리먼트라면 아래와 같은 오프셋은 가진다.
[그림 5 - IR, IL 타입의 offset]
Value-list cell은 Value cell들의 인덱스 목록을 가지고 있다. 오프셋은 다음과 같다.
[그림 5 - value-list cell offset]
[Security-descriptor cell]
key cell의 Security-descriptor 정보를 가지고 있으며 시그니처는 'sk'이다. 이 셀을 공유하고 있는 모든 키 노드의 개수도 같이 기록 된다. 오프셋은 아래 이미지와 같다.
[그림 6 - Security-descriptor cell offset]
list cell들의 경우 오프셋을 찾지 못하여 조금 더 공부가 필요할 듯하다.
참고로 키 노드의 시그니처 경우 약자를 따서 'nk'인데 순서가 오프셋에서 보면 순서가 뒤집어져 있다.
이 이유는 해당 시그니처가 헥스값으로 저장되어 kn -> nk로 보이는 것이다.
'[+] Forensic' 카테고리의 다른 글
Registry (9) (0) | 2012.01.06 |
---|---|
Registry (8) (2) | 2012.01.06 |
Registry (6) (0) | 2012.01.04 |
Registry (5) (0) | 2012.01.04 |