Startup 디스크 포렌식 이론 #3 - NTFS (구조)


1) NTFS 및 MFT Entry 구조 이해


- NTFS 기본 구조


- 위 구조는 MBR -> VBR -> MFT Entry -> Root Cluster 위치


가. MBR

 - MBR의 위치는 이미지 0번 섹터에서 확인 할 수 있고 파티션의 정보가 있으며 상대적인 위치이기 때문에 계산 시 고려



나. VBR

 - MBR의 정보를 참고하여 위치를 찾을 수 있고 해당 파티션 정보를 헤더에서 확인

VBR 정보(출처: http://kali-km.tistory.com/entry/NTFS-File-System-3)






 - 헤더 정보(붉은 박스 차례대로)

  ☞ 1섹터 당 바이트 -> 0200(16) = 512 Byte

  ☞ 1클러스터 당 섹터 수 -> 08(16) = 8개

      ㄴ 1클러스터 => 4096 = 512(Byte) * 8(개)

  ☞ 해당 파티션의 총 섹터 수-> FE7FF(16) = 1042431 개

  ☞ MFT 시작 위치(섹터) -> A9AA(16) = 43434 개



다. MFT

 - MFT 시작 위치(위 붉게 표시한 정보 참고)

  ☞ 347,600 = 43,434(A9AA(16)) * 8 + 128(현재위치)




    ☞ MFT Entry는 각 번호와 이름이 있음

MFT Entry (출처: http://kali-km.tistory.com/entry/NTFS-File-System-4)



    ☞ MFT는 각 2개의 섹터를 갖기 때문에 크기는 1024(512*2)Byte

    ☞ MFT 구조

MFT Entry 구조


    ☞ MFT Header 48 Byte 이후 Fixup, Attribute, End Mark(0xFFFFFFFF), 사용되지 않은 영역 순으로 구조를 가짐(왼쪽 오른쪽 색으로 영역 구분)

    ☞ MFT Header 데이터 포맷

MFT Header 구조(출처: http://kali-km.tistory.com/entry/NTFS-File-System-4?category=522239)



    ☞ 생성된 파일이 700 byte 이하면 클러스터를 할당받지 않고 해당 MFT Entry(Index Entry) 내 데이터를 저장하고 이를 Resident 속성이라 함

    ☞ 생성된 파일이 700 byte 이상이면 클러스터를 할당 받아 다른 곳에 연속적으로 저장하며 이를 Non-Resident 속성이라 함


MFT Entry 내 데이터 저장 Resident 속성



위 MFT Entry의 실제 파일





    ☞ MFT Entry의 Attribute 속성 관련하여 아래와 같이 확인


라. Data Area

 - 데이터의 크기가 700byte 이상인 경우 이를 저장 장소



다음 이어질 내용

- Non Resident

- MFT Fixup

- MFT Attribute


+ Recent posts