ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파일시스템 정리 (2)
    CERT/Forensic 2019. 7. 1. 16:11

    NTFS ?

     

    - Windows에서 사용하는 파일시스템

    - USN Journal

    - ADS (Alternate Data Stream)

    - Sparse 파일

    - 파일 압축

    - VSS (Volume Shadow Copy Service)

    - 유니코드 지원

    - 동적 배드 클러스터 재할당

     

    NTFS 구조

     

    - 파일시스템은 기본적으로 메타영역과 데이터 영역으로 구분

    - NTFS의 경우 메타영역은 VBR, MFT이며 데이터 영역은 데이터 영역

     

     

    VBR (Volume Boot Record) ?

     

    - NTFS 구조에서 가장 앞부분에 위치

    - 고정된 크기가 아니라 클러스터 크기에 의존 (512Byte, 1KB, 2KB, 4KB)

     

    VBR 구조

     

    - 부트섹터 + 추가적인 VBR 영역

    - VBR의 첫 번째 섹터는 부트섹터

    - 추가적인 VBR 영역(NT Loader 정보 + Boot Strap)

     

     

    VBR의 부트섹터

     

    Length

    Arrange

    Name

    Description

    3

    0x00 0x02

    Jump Boot Code

    부트 코드로 점프하기 위한 명령어

    8

    0x03 0x0A

    OEM ID

    OEM ID(NTFS)

    2

    0x0B 0x0C

    Byte Per Sector

    섹터 당 바이트 수 (512, 0x200)

    1

    0x0D 0x0D

    Sector Per Cluster

    클러스터 당 섹터 수 (8, 0x8)

    2

    0x0E 0x0F

    Reserved Sectors

    예약된 영역, 항상 0

    5

    0x10 0x14

    Unused

     

    1

    0x15 0x15

    Media Descriptor

    0xF8 이면 고정식 디스크

    18

    0x16 0x27

    Unused

     

    8

    0x28 0x2F

    Total Sectors

    해당 볼륨이 가지는 총 섹터 수

    8

    0x30 0x37

    Start Cluster for $MFT

    $MFT LBA 주소 (클러스터 단위)

    8

    0x38 0x3F

    Start Cluster for $MFTMirr

    $MFTMirr LBA 주소(클러스터 단위)

    1

    0x40 0x40

    Clusters Per MFT Entry

    MFT Entry 크기

    3

    0x41 0x43

    Unused

     

    1

    0x44 0x44

    Clusters Per Index Buffer

    인덱스 버퍼의 크기

    3

    0x45 0x47

    Unused

     

    8

    0x48 0x4F

    Volume Serial Number

    볼륨 시리얼 번호

    4

    0x50 0x53

    Unused

     

     

    VBR 주소 & MFT 주소 찾기

     

     

    - MBR의 LBA 시작 주소 위치: 00 08 00 00 = 0x00000800

    - VBA의 시작 주소: LBA 시작 위치 * 섹터의 크기 (섹터의 크기:512Byte)

    - 0x800 * 0x200(512byte) = 0x100000 (VBA 시작 주소)

     

     

    - Byte Per Sector (섹터당 바이트 수) : 00 02 = 0x0200 = 512Byte

    - Sector per Cluster (클러스터당 섹터 수) : 08 = 0x08 = 8

    - 클러스터의 크기 = 8 (Sector per Cluster) * 512 (Byte per sector) = 4096 Byte

    - Total Sector = FF 1F CF 03 00 00 00 00 = 0x0000000000031FFF

    - $MFT LBA = 55 21 00 00 00 00 00 00 = 0x0000000000002155 = 0x2155

    - 0x2155 * 0x1000 (4096 Byte) = 0x2155000 = MFT 시작 주소

     

     

    댓글

Designed by Tistory.