VBR

What is VBR?

VBR은 Volume Boot Record의 줄임말로 컴퓨터를 부팅하는데 필요한 코드(부트 코드), NTLDR 가 들어있는 영역이다.
그 크기가 가변적인데, 클러스터 단위를 기준으로 가변적이다. 바로 밑에서 다루도록 할 예정이다.
VBR 영역에서는 OEM ID나, 부트코드, 볼륨 크기, MFT 시작 주소, 클러스터의 크기와 같은 정보가 들어있다.
Cluster 란? 디스크 공간에서 파일을 저장하기 위해 할당하는 가장 작은 단위의 크기
NTLDR? NT Loader 를 의미하는 말이다. 마이크로소프트 윈도우 계열 운영체제들을 부팅하게 하는 영역이다.

VBR Size

VBR은 그 크기가 가변적이라고 했는데 클러스터의 크기에 따라 달라지는 양상을 보인다.
아래 표에 제시된거와 같은 크기를 가지는데, 클러스터 크기 512바이트마다 1섹터씩 늘어난다고 생각하면 된다.
잘 짚고 넘어가야 하는 부분은 VBR 사이즈가 1섹터인 경우는 다른 컨텐츠 없이 부트 섹터만 들어있다고 봐도 무방하다. (부트 “섹터”인데 섹터가 한개만 있으니까)

VBR Contents

VBR 영역에는 그럼 어떤 정보가 있는지 확인해보도록 하자.
좀더 편하게 볼 수 있게 해당 오프셋에 맞는 범위에 색칠을 해 놓았다. 표와 매핑해서 볼 때 예시로 아래 사진을 참고하면 좀 더 도움이 될 것이다.
아래 표에 명시되어 있지 않은 항목 중 VBR 영역에 있는 내용은 부트 코드이다.
TIP! VBR 사이즈가 얼만큼인지 모르겠다 싶을 때 0x55AA라는 Footer(End Signature)를 찾으면 된다.

백업

VBR의 경우 그 백업이 존재한다. NTFS, FAT 등 파일시스템 별로 백업 되는 위치는 다르지만 NTFS의 경우 VBR 주소 + 전체 크기 -1 부분에 백업본이 위치한다. EB 52 90 4E 54 53 20 20 20 시그니처 값을 검색해 본다면 찾아볼 수 있을 것이다.

결론

이걸 왜 알아야 하나? 라고 생각될 수 있는 부분이다. 그렇게 느끼는 이유는 요즘 도구들에서 이를 자동으로 분석해서 결과를 출력해 주기 때문에 그렇게 느껴진다고 생각한다.
실제로 VBR 영역에서는 운영체제의 아키텍쳐, 볼륨의 고유 식별자, 생성 시간, $MFT의 위치 등 많은 정보를 얻을 수 있는 영역인 만큼 간과하면 안된다.
아는만큼 보인다는 말이 있듯, 사소한 부분에서 정보를 놓쳐 전체 결과에 영향을 미치는 일이 없도록 하는 것이 중요하다고 생각한다.