본문 바로가기

[+] Forensic

Registry (7)

이번에는 하이브 빈 보다 더 작은 논리적 저장단위인 셀에 대해서 알아 볼 것이다.

[셀]
셀이란, 하이브 빈 보다 더 작은 논리적 저장단위이며 실제 레지스트리 데이터를 저장할 때 사용되는 단위는 셀이다.
셀 헤더에는 셀의 전체 길이가 저장되어 있으며, 이 값은 무조건 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 (7)  (0) 2012.01.04
Registry (6)  (0) 2012.01.04
Registry (5)  (0) 2012.01.04