NTFS(New Technology File System)


출처 : forensic-proof.com


NTFS의 전체적인 구조는 위와 같다.


아래는

NTFS의 Boot Record 의 구조이다.


 Byte Range Description
DecimalHexadecimal
 0 – 2 0x0000 – 0x0002  Jump command to boot code (usually 0xEB5290)
 3 – 10 0x0003 – 0x000A OEM ID (typically "NTFS      ")
 11 – 12 0x000B – 0x000C  Bytes per sector
 13 – 13 0x000D – 0x000D Sectors per cluster
 14 – 15 0x000E – 0x000F Reserved
 16 – 18 0x0010 – 0x0012 Always 0
 19 – 20 0x0013 – 0x0014 Unused
 21 – 21 0x0015 – 0x0015 Media descriptor
 22 – 23 0x0016 – 0x0017 Always 0
 24 – 25 0x0018 – 0x0019 Sector per track
 26 – 27 0x001A – 0x001B Number of heads
 28 – 31 0x001C – 0x001F Hidden sectors
 32 – 35 0x0020 – 0x0023 Unused
 36 – 39 0x0024 – 0x0027 Unused
 40 – 47 0x0028 – 0x002F Total secotrs
 48 – 55 0x0030 – 0x0037 Logical cluster Number for the file $MFT
 56 – 63 0x0038 – 0x003F Logical cluster Number for the file $MFTMirr
 64 – 67 0x0040 – 0x0043 Clusters per file record segment
 68 – 71 0x0044 – 0x0047 Clusters per index block
 72 – 79 0x0048 – 0x004F Volume serial number
 80 – 83 0x0050 – 0x0053 Checksum
 84 – 509 0x0054 – 0x01FD Boot code and error message
 510 – 511 0x01FE – 0x01FF Signature ("0x55AA")

출처 : forensic-proof.com


빨간색 음영되있는 부분은 중요한 부분이다.

cluster란 말이 나오는데 클러스터는 파일 시스템이 파일을 저장하기 위해 할당할 수 있는 가장 작은 디스크 공간이다.

cluster의 크기는 VBR의 크기에 영향을 주는데

Cluster Size (Byte)VBR Size (Sector)
 512 1
 1K 2
 2K 4
 4K 8

출처 : forensic-proof.com



실재 덤프 내용이다.

출처 : forensic-proof.com


추가적인 VBR영역도 있는데 이는 NTLDR(NT LOARDER)을 빠르게 로드하기 위함이다.

'포렌식 > 파일시스템' 카테고리의 다른 글

MBR VBR에 관하여  (0) 2016.07.04


들어가며

 

시스템은 파티션의 크기 정보, 파티션 위치정보를 MBR의 파티션 테이블에 저장한다.

이 파티션 테이블은 총 4개의 파티션 정보를 저장할 수 있다.

부팅할때 파일 시스템은 파티션 테이블에 저장된 파티션의 속성 위치, 크기정보를 통하여 파티션을 구분한다.

각 파티션은 파티션 종류에 따라 다르지만 일반적으로(FAT, NTFS) 파티션의 시작위치에 VBR(Volume Boot Record)가 생성된다. 




MBR(Master Boot Record)


MBR은 모든 기억장치의 첫번째 섹터에 존재하며 크게 부트코드, 파티션테이블, 시그니처 3가지 영역으로 나눌 수 있다.

출처 : cappleblog.co.kr



다음은 HxD로 열어본 모습이다.

출처 : cappleblog.co.kr


부트 코드 영역은 총 446바이트로 구성된다.

이 영역은 파티션테이블로부터 부팅가능한 파티션을 찾아서 그 파티션의 부트 섹터를 호출해 준다.


파티션테이블 영역은 총 64바이트로 16바이트씩 4개의 엔트리를 가진다.

각 엔트리에는 파티션 부팅가능 여부, 파티션 시작위치, 총 섹터 개수, 파티션 유형 등 기본적인 정보를 저장한다. 시스템은 이 테이블을 바탕으로 파티션을 구분한다.


마지막으로 시그니쳐 영역은 해당 섹터가 문제가 없는 MBR 섹터인지 확인하기 위한 값으로써 55 AA라는 고정값을 가진다. 이는 MBR 뿐만 아니라 VBR에서도 해당된다.




VBR(Volume Boot Record)


볼륨의 첫번째 섹터를 의미하며 파티션이 나누어 지지 않은 저장장치에선 MBR대신 저장장치의 첫번째 섹터에 사용된다.

VBR의 첫번째 섹터에는 부트섹터가 위치한다.

여러 파일 시스템이 VBR헤더영역을 이용해 각각 설정값을 부여한 후 부팅 , 파티션 정보 저장 용도로 사용하고 있다.





참고: 포렌식 관점의 파티션 복구 기법에 관한 연구

'포렌식 > 파일시스템' 카테고리의 다른 글

NTFS 구조  (0) 2016.07.04

+ Recent posts