디지털포렌식과 친해지기
  • 디지털포렌식전문가 2급 실기와 친해지기(실기)
    • 1. 디지털 포렌식 실기 준비하기
      • 1. BIT, BYTE, 파일 그리고 Hash
      • 2. 섹터와 사본 이미지 생성
        • 2-1. FTK Imager 활용 물리이미징(Registry 쓰기방지)
        • 2-2. EnCase 활용 물리이미징(EnCase 쓰기방지)
        • (연습용) 가상디스크 만들기
      • 3. 파티션과 파일시스템 복구
        • 3-1) 파티션과 파티션 테이블
          • 3-1.1) GPT 헤더, 파티션 Entry 복구
        • 3-2) 파일시스템과 파일시스템 복구
        • 3-3) 파일시스템 복구 실전 연습
      • 4-1. 무료도구 활용 분석연습
        • 0) 이미지 획득 및 파일시스템 복구
        • 1) 저장매체와 파일시스템 분석
        • 2) 파일과 친해지기
        • 3-1) 파일 관련 분석 1
        • 3-2) 파일 관련 분석 2
        • 4-1) 윈도우 아티팩트1
        • 4-2) 윈도우 아티팩트2
        • 5) 주요 응용 프로그램 아티팩트
          • 5-1) Sqlite 열어보기
        • 6) 키워드 검색 / Base64 Decode
        • 7) bitlocker
        • 8) 가상머신(참고)
        • 무료도구 활용 분석연습 정리
      • 4-2. EnCase 활용 분석연습
        • 0) 이미지 획득 및 파일시스템 복구
        • 1) 저장매체와 파일시스템 분석
        • 2) 파일과 친해지기
        • 3-1) 파일 관련 분석 1
        • 3-2) 파일 관련 분석 2
        • 4-1) 윈도우 아티팩트1
        • 4-2) 윈도우 아티팩트2
        • 5) 주요 응용 프로그램 아티팩트
          • 5-1) Sqlite 열어보기
        • 6) 키워드 검색 / Base64 Decode
        • 7) bitlocker
        • 8) 가상머신(참고)
        • EnCase를 활용한 분석연습 정리
      • 5. 주관식 - 기본 절차 및 증거법 관련
        • (정리 중) 디지털 증거관련 주요 판례
      • 6. 답안 제출 및 보고서 작성
      • 7. 요령 및 주의사항
    • 2. 실력 다지기
      • 1. 문제 저장매체 만들고 풀어보기
        • 기초 연습문제1-분석해보기(무료도구)
        • 기초 연습문제1-분석해보기(EnCase)
      • 2. 파일시스템 복구 연습
      • 3. NTFS 로그 분석 연습
    • 3. 실전 연습 문제
      • 2018 실전 연습 문제
        • 2018 실전 연습 - 분석해보기(무료도구)
        • 2018 실전 연습 - 분석해보기(EnCase)
      • 2019 실전 연습 문제
        • 2019 실전 연습 - 분석해보기(무료도구)
        • 2019 실전 연습 - 분석해보기(EnCase)
      • 2020 실전 연습 문제
        • 2020 실전 연습 - 분석해보기(무료도구)
        • 2020 실전 연습 - 분석해보기(EnCase)
      • 2023 실전 연습 문제(종합유형)
        • 2023 실전 연습 - 분석해보기(무료도구)
        • 2023 실전 연습 - 분석해보기(EnCase)
      • 2024 실전 연습 문제
        • 2024 실전 연습 - 분석해보기(무료도구)
        • 2024 실전 연습 - 분석해보기(EnCase)
    • 4. 기출 유형
  • 디지털포렌식과 친해지기
    • 1. BIT의 저장
      • 0) 준비사항!
        • 0-1) 주요 분석 도구 간단 소개 및 설정
        • 0-2) Python 을 이용한 개발 환경 구성
        • 0-3) Python 소스로 실행파일 만들기
      • 1) BIT, BYTES와 파일 그리고 Hash
        • 1-1) Hex Viewer 만들기
        • 1-2) BIT의 저장(참고)
      • 2) 저장매체와 섹터 그리고 물리이미징
        • 2-1) 가상 디스크 설정
        • 2-2) 물리이미징(raw) 실습
        • 2-3) 물리이미징 수집 도구 만들기(기초)
      • 3) 파티션
        • 3-1) MBR 파티션 테이블 구조
        • 3-2) GPT(GUID Partition Table) 구조
        • 3-3) 파티션 분석 도구 만들기(기초)
      • 4) 파일시스템 기초 분석
        • 4-1) 파일시스템 직접 만들어 보기
        • 4-2) FAT32 분석
          • 4-2.1) FAT32 분석(BR, Directory Entry - 데이터의 접근)
          • 4-2.2) FAT32 분석 2(FAT, LFN, 삭제)
          • 4-2.3) FAT32 분석 3 (특징과 분석 도구)
        • 4-3) NTFS 기초 분석
          • 4-3.1) NTFS 기초 분석(NTFS BR과 DATA 영역)
          • 4-3.2) $MFT와 MFT Entry
          • 4-3.3) MFT Entry의 주요 속성1($SI,$FILE,$DATA)
          • 4-3.4) MFT Entry의 주요 속성2(인덱스1, resident/Nonresident)
          • 4-3.5) MFT Entry 찾기(인덱스2, $ATTRIBUTE_LIST)
          • 4-3.6) NTFS 에서 파일의 접근 정리
          • 4-3.7) NTFS 주요 메타데이터 파일
          • MFT Entry 분석용
      • 5) 파티션과 파일시스템
      • 6) 사본 이미지 생성(논리/물리이미징)
      • 7) 파일과 친해지기
Powered by GitBook
On this page
  • 2. FAT 32 분석
  • 2-1) FAT32 분석 준비
  • 2-2) FAT 32 부트레코드 분석
  • 2-3) 데이터 영역에 접근
  • 2-4) 디렉토리 엔트리와 파일 시작섹터 위치
  1. 디지털포렌식과 친해지기
  2. 1. BIT의 저장
  3. 4) 파일시스템 기초 분석
  4. 4-2) FAT32 분석

4-2.1) FAT32 분석(BR, Directory Entry - 데이터의 접근)

FAT32의 부트레코드, 데이터 영역의 접근, 디렉토리 엔트리에 대해 알아봅시다.

Previous4-2) FAT32 분석Next4-2.2) FAT32 분석 2(FAT, LFN, 삭제)

Last updated 5 months ago

2. FAT 32 분석

2-1) FAT32 분석 준비

  1. [디스크 관리] 에서 새로운 가상디스크를 만들어 봅시다. (가상 디스크 사용법 : 2-1) 가상 디스크 설정)

  2. 디스크 초기화에서 MBR에서 초기화 후 설정 해보도록 합시다.

  3. 이번에는 드라이브 문자를 할당 하고 이 볼륨을 다음 설정을 포맷에서 [FAT 32] , 볼륨 레이블을 FAT32로 지정해봅시다.

  4. FAT32가 인식된 드라이브를 선택하고 텍스트를 하나 생성해 봅시다.

  5. 간단한 텍스트를 저장하고, 대신 영문의 인코딩 방식을 "ANSI"로 저장 해보도록 합시다.

2-2) FAT 32 부트레코드 분석

  1. FTK Imager를 이용하여 분석하여 봅시다. Add evidence item 을 선택 - Physical Drive를 선택 후 연결한 가상디스크를 선택하여 봅시다.

  2. 최상위 저장매체의 가장 첫부분을 확인하여 봅시다. 우리는 MBR 파티션 엔트리 구조를 알기 때문에 첫번째 파티션 엔트리를 간단히 분석해서 파티션 1번의 위치를 확인하여 봅시다. 파티션 1번의 시작위치 : 80 00 00 00 -> 00 00 00 80 (16진수) => 128 (10진수) 섹터 전체 섹터 수 : 00 90 01 00 -> 00 01 90 00 (16진수) => 102,400 섹터 이제 1번 파티션은 128 - 102,400 섹터에 해당합니다.

  3. FTK Imager에서도 파티션 1번을 확인하면 파티션 Properties 에서 파티션 1번을 분석한 부분을 확인할 수 있습니다. 자 이제 여기에 FAT32 파일시스템이 시작하는 것을 확인하였습니다. FAT에서는 이곳을 FAT 파일시스템의 부트 레코드(BR) 이라고 하며, 이곳에 파일시스템 관련의 주요 정보가 포함되어 있습니다.

  4. FAT32 부트 레코드 구조 중 이번에는 포렌식과 친해지기에서는 중요하다고 생각되는 부분 위주로 살펴 보도록 하겠습니다.

  5. 위에 것을 한번 다시 한번 분석을 해보도록 합시다.

    - Bytes Per Sector : 512 (1 섹터의 크기 512 bytes) - Sector per Cluster : 1 (클러스터 당 섹터 수) / 클러스터 번호로 섹터를 이동할 때 항상 주의 ex) 클러스터 당 섹터수가 8 이라면 1클러스터 이동 X 8 섹터로 계산해야 함 - Reserved Sector Counter : 6,718 섹터 (예약된 영역으로 사용하지 않는 영역) - Total Sector 32 : 102,400 섹터 (전체 섹터 수) - FAT32 : 737 섹터 (FAT 영역 크기) - Num FATs : 2 (FAT 영역 개 수) - Root Directory Cluster : 2 (2번 클러스터) - Volume ID : 18 75-8B 02 - Back Boot Sector : 6 (백업 부트 레코드 섹터 위치)

  6. 위 정보로 알 수 있는 추가 정보를 알아봅시다. - 파일시스템의 전체 용량 : 102,400(전체 섹터 수) X 512 = 52,428,800 bytes = 50 Mbytes - 클러스터의 크기 : 1 섹터 (512 bytes) - Volume ID : 18 75-8B 02 - 부트레코드 백업본 위치 : 6번 섹터(파티션 시작 기준)

  7. 먼저 Volume ID 의 경우 바로 확인이 가능합니다. cmd 창을 연 다음 FAT32 드라이브로 이동 한 다음 아래 명령어를 입력하면 확인할 수 있습니다.

    > dir

  8. 부트 레코드의 경우 훼손이 되면 파일시스템 전체에 대해 파악이 어렵기 때문에 백업본이 위치합니다. Back Boot Sector 가 6이니 6번째 섹터에 가보도록 합시다. 물리섹터 기준으로는 파티션 시작 위치 + 6에 위치 (파티션 1 시작 위치 128 + 6 = 134번 섹터)

  9. 파티션 내에서 이동할 때는 해당 파티션을 선택 후 Logical Sector 로 이동할 수 있습니다. 6번 섹터에 백업이 있는지 확인할 수 있습니다.

    6번 섹터에 복사본이 위치하며 복사본을 BR 있어야 하는 섹터에 덮어 쓴다면, 파일시스템의 정보가 복원되어 파일시스템 구조 접근이 가능해 집니다. (디지털포렌식 2급 자격증 시험에 많이 출제된 문제 유형 중 하나 입니다.)

2-3) 데이터 영역에 접근

  1. 그렇다면 루트 디렉토리로 이동해서 우리가 저장한 파일은 어떻게 접근 하는 것일까? 일단 FAT 파일시스템 구조를 파악 해보고 시작 위치를 알아봅시다.

    먼저 DATA 영역에 접근을 먼저 해보도록 합시다. DATA 영역 접근을 위해서 섹터번호를 계산해보면 - Reserved Sector Counter : 6,718 섹터 (예약된 영역으로 사용하지 않는 영역) - FAT32 : 737 섹터 (FAT 영역 크기) - Num FATs : 2 (FAT 2개) [물리 섹터 기준]

    파티션 시작 위치 섹터 + Reserved Sector + FAT1 크기 + FAT2 크기(FAT1과 동일) = DATA 시작 -> 128 + 6,718 + 737 + 737 = 8,320섹터 [파티션 기준] Reserved Sector + FAT1 크기 + FAT2 크기(FAT1과 동일) = DATA 시작 -> 6,718 + 737 + 737 = 8,192 섹터 FTK Imager 에서 해당섹터로 이동하면 아직은 잘 모르지만 어떤 데이터가 보이면 잘 접근한 것입니다.

  2. FTK Imager에서 보면 FAT32 영역을 클릭하면 우리가 계산한 영역으로 한방에 이동합니다. 또한 Properties 에서 우리가 분석한 내용도 확인할 수 있습니다.

여기서 잠깐! Cluster Count에 대해 생각 해봅시다. 기본적으로 내가 개발자라면 전체 클러스터 수는 몇 개를 만드는게 좋을까? 사용할 수 있는 남은 데이터 전체 섹터 수 / 클러스터 당 섹터 수로 나눠서 최대한 클러스터 크기를 확보하는게 좋지 않을까요? 실제로 맞는지 섹터 단위로 계산을 해봅시다. {전체 섹터 수 - (reserved + FAT1 + FAT2) } / 클러스터 당 섹터 수 = 전체 클러스터 수 { 102,400 - ( 6,718 + 737 + 737) / 1 } = 94, 208 94,208 클러스터일 것으로 보입니다.

그렇다면 클러스터 수 X 클러스터 크기 = 전체사용 가능한 데이터 용량 일 것이고 (94,208 X 512 = 48,234,496 bytes = 47,104 Kbytes = 46MB 윈도우에서 해당 디스크 우클릭 - 속성에서 확인하면 같은 용량을 표시하게 되지 않을까요?

확인 해보시기 바랍니다! Free Cluster Count (사용 가능한 클러스터) 는 추후에 FAT 영역을 공부해보고 살펴봅시다.

그런데 클러스터가 뭘까?
  • FAT(File Allocation Table) 파일 시스템에서 "클러스터"는 저장 장치에서 데이터를 저장하는 기본 단위입니다. 클러스터는 여러 섹터로 구성된 단위이며, 파일이 저장될 때 데이터가 클러스터 단위로 나누어 저장됩니다.

  • 즉, 섹터 여러개를 묶어서 하나의 클러스터 단위로 활용하는 것입니다.

  • 용량이 크다면 클러스터 단위가 크고, 용량이 작으면 클러스터 단위가 작아야 효율적으로 관리할 수 있을 것이다.

  • 파일시스템을 포맷 할 때 할당 단위 크기를 설정 할 수 있는데 이게 클러스터 크기에 해당한다.

  1. 그런데 이상한게 하나 있습니다. FAT 부트레코드에서 루트 디렉토리 클러스터 번호가 2번을 가리키고 있습니다. - Root Directory Cluster : 2 (2번 클러스터) 그런데 도구 하단에 보면 Clus 번호가 2로 되어 있으며, FAT32 내에서는 클러스터 단위로 이제 이동이 가능한 Data 영역이기 때문에 우클릭 하였을 때, Go to Cluster가 가능합니다. 그런데 Range를 보면 2번부터 가능합니다.

  2. 클러스터 0번과 1번은 어디 갔을까요? FAT 영역과 관련이 있기 때문에 아래 FAT 영역 분석에서 한번 알아보도록 합시다. 지금은, 0번, 1번 클러스터를 데이터 저장에 사용하지 않는다 정도만 알고 있도록 합시다.

2-4) 디렉토리 엔트리와 파일 시작섹터 위치

  1. FTK Imager에서 [root] 영역을 누르면 위에서 접근한 루트 디렉토리 데이터 영역 시작 위치를 확인할 수 있으며 Start Cluster, Start Sector가 어떤 의미인지도 이제는 알 수 있습니다.

    자 이제 데이터 영역을 확인해보도록 해봅시다. 초반에 생성했던 "test.txt"도 발견할 수 있습니다.

  2. 우선 다른 파일들은 윈도우에서 자동으로 생성하거나 test.txt 파일을 생성하는 과정에서 생긴 파일 정보 엔트리가 있으나 우선은 확실히 잘 보이는 "test.txt" 파일에 대한 정보가 담긴 영역을 분석해봅시다.이 부분을 디렉토리 엔트리 라고 합니다.

  3. FAT32의 디렉토리 엔트리를 분석해보면 아래와 같다.

    Active Disk Editor 로 분석 할 경우 아래와 같이 확인이 가능합니다. Active Disk Editor 에서 해당 저장매체를 Edit 한 후 8,320 섹터로 간 뒤 우리가 보려는 디렉토리 엔트리 영역의 시작 점에서 우클릭 - Set Template Position 을 선택한 뒤 Templates를 FAT Directory Entry로 선택하면 확인이 가능합니다. 꼭 봐야할 필요는 없으니 참고만 하도록 합시다.

  4. 위 구조를 살펴보도록 하자 먼저 파일명 부분을 살펴보면 - Name : "TEST" - Extender(확장자) : TXT - Attribute (속성) : 20 > 01 : 읽기전용, 02 : 숨김, 04 : 운영체제 파일, 08: 볼륨레이블, 10: 디렉토리, 20: 일반파일 F0 : Long File Entry (파일명이 길 경우 긴 파일명 엔트리) - NT reserved : 18 > 00: 파일 이름과 확장자가 모두 대문자 / 08: 파일 이름이 소문자, 확장자는 대문자| 10: 파일 이름은 대문자, 확장자가 소문자 / 18: 파일 이름과 확장자가 모두 소문자

  5. 시간 관련 정보를 알아보면 약간은 복잡해 보이지만, 한만 집중해서 해보면 무슨 의미인지 파악이 될 것입니다. 시간 정보의 경우 각자 다를테니 각자가 같은 방식으로 한번 계산해보길 . *우선 시간 정보는 16진수값을 2진수로 변환 후 계산해야 합니다. [생성시간] - Creation Time Tenth : C7(16진수) -> 199(10진수) / 파일이 생성된 시간의 10밀리초 단위 값, > 즉 1990 밀리초(1.99초)로 Creation Time 필드와 함께 파일이 생성된 정확한 시각을 나타냄 - Create Time : AF A3 (리틀엔디안) -> A3AF -> bit (2진수)로 변환 1010(A)0011(3)1010(A)1111(F) 1010001110101111 -> 10100 (20) 5비트 Hours(20시) 1010001110101111 -> 011101 (29) 6비트 Minutes(29분) 1010001110101111 -> 01111 (15) 5비트 X 2 Seconds(30초) 초의 경우 X2를 함. > 20시 29분 30초 - Create Date : B3 58(리틀엔디안) -> 58B3-> bit (2진수)로 변환 0101(5) 1000(8) 1011 (B) 0011(3) 0101100010110011 -> 0101100(44) 7비트 Year(1980+44 =2024) 기준년도(1980) 추가 0101100010110011 -> 0101 (5) 4비트 Month (5월) 0101100010110011 -> 10011(19) 5비트 (19일) > 2024년 5월 19일 >> 정리하면 Create Date + Create Time + Creation Time Tenth : 2024년 5월 19일 20:29:31.990 [최근 접근 날짜 - 날짜는 있으나 시간 정가 없다.] - Last Access Date : B3 58(리틀엔디안) -> 58B3-> bit 로 변환 0101(5) 1000(8) 1011 (B) 0011(3) 0101100010110011 -> 0101100(44) 7비트 Year(1980+44 =2024) 기준년도(1980) 추가 0101100010110011 -> 0101 (5) 4비트 Month (5월) 0101100010110011 -> 10011(19) 5비트 (19일) > 2024년 5월 19일 [수정시간] - Write Time : EA A3(리틀엔디안) -> A3 EA-> bit (2진수)로 변환 1010(A) 0011(3) 1110(E) 1010(A) 1010001111101010 -> 10100 (20) 5비트 Hours(20시) 1010001111101010 -> 011111 (31) 4비트 Minutes(31분) 1010001111101010 -> 01010 (10) 4비트 X 2 Seconds(20초) 초의 경우 X 2를 함. > 20시 31분 20초 - Write Date : B3 58(리틀엔디안) -> 58B3-> bit 로 변환 0101(5) 1000(8) 1011 (B) 0011(3) 0101100010110011 -> 0101100(44) 7비트 Year(1980+44 =2024) 기준년도(1980) 추가 0101100010110011 -> 0101 (5) 4비트 Month (5월) 0101100010110011 -> 10011(19) 5비트 (19일) > 2024년 5월 19일 >> 정리하면 Write Date + Write Time : 2024년 5월 19일 20:31:20 *생성시간 처럼 세밀하지 못하고, 초 단위가 무조건 짝수인 것을 알 수 있습니다.

  6. 중간에 클러스터를 나타내는 부분이 high, low 로 나눠져 있는데 사실 이전 버전인 FAT16에서는 Cluster High를 사용하지 않고 Cluster low만 사용했습니다.

    FAT32로 더 많은 것을 나타내기 위해 나중에 Cluster High를 사용하게 된 것입니다. [클러스터 부분] Cluster Low (07 00) + Cluster High (00 00) = 07 00 00 00 (리틀엔디안) -> 00 00 00 07 (7) 로 클러스터 7번을 가리키고 있다.

  7. 파일 크기를 알아봅시다. [파일 크기] File Size : 04 00 00 00 (리틀엔디안) -> 00 00 00 04 (4) = 4 bytes

File Size 값이 FF FF FF FF 보다 크다면 어떻게 될까?

FF FF FF FF (16진수) 를 10진수로 바꿔 보자 4,294,967,295 bytes = 4,194,303 Kbytes = 4,095 Mbytes = 3.99 GBytes 즉, 최대 3.99GB로 4GB 파일을 나타낼 수 없다.

이론에서는 FAT32의 단일 파일 크기가 4G넘는 파일은 파일 크기를 표현할 수 없는 한계가 있는 것입니다.

  1. 우선 궁금하니 7번 클러스터(파일의 시작 위치)에 가봅시다. [클러스터 이동] root 디렉토리 시작 위치(2번 클러스터) + (클러스터 번호 - 2) X 클러스터 당 섹터 수 (2를 빼는 이유는 2번 클러스터 부터 시작이기 때문이다.) 즉, 8,320 + (7 - 2) X 1 = 8,325 섹터 입니다. FTK Imager에서 이동하여 봅시다. FAT32 영역에서 Go to Cluster로도 쉽게 이동 가능합니다.

    우리가 저장했던 "test.txt" 로 접근하게 되었습니다! 클러스터 번호, 물리섹터 번호도 우리가 계산한대로 보일 것입니다.

  2. 추가로 루트 디렉토리의 가장 처음 있는 디렉토리 엔트리는 볼륨레이블이 저장되어 있습니다. 사실 볼륨레이블을 변경하는 일은 잘 없기 때문에 여기에저장된시간값은 파일시스템 포맷시간으로 볼여지가 있습니다. 다만 언제든 수정이 가능하기에 무조건 파일시스템 생성시간으로 보는 것은 적절하지 않습니다.

  • 우리가 생성한 파일 이외의 다른 파일이 보일 수 있는데 이는, 윈도우 또는 보안 프로그램이 자동으로 생성한 파일도 포함됩니다.

  • 우선은 용량이 매우 작은 파일을 저장하였는데 만약 용량이 매우 커서 여러 섹터를 쓴다면, 몇 번, 몇 번 섹터를 쓴다는 것을 어떻게 알 수 있을까? 다음, FAT 영역을 통해 알아보도록 합시다.

레이블 영역과 파일시스템 포맷시간?
  1. 우리가 파일시스템을 만들 때 파일시스템 이름을 FAT32 로 지정하였습니다. 그럼 이 부분은 어디에 저장될까?

  2. 위에 디렉토리엔트리에서 잠깐 나왔는데 속성 부분이 08 이라면 볼륨레이블이라는 의미를 지닌 값입니다. 사실 이 부분은 파일시스템 생성(또는 포맷) 후 가장 먼저 생성되는 부분입니다. 그리고 여기엔 Write Time, Write Date 시간정보가 추가가 됩니다. HxD에서 디렉토리 엔트리가 시작되는 부분에서 시간 부분을 지정한 후 우측에 시간변환 하는 것을 통해 생성시간을 파악할 수 있습니다.

  3. 보통 파일시스템의 이러한 이름을 바꾸는 경우는 잘 없습니다. 그렇다면.. 만약 이 파일시스템이 언제 포맷 되었는지 파악하기 위해서 이 시간 정보도 활용할 만한 여지가 있는것이죠.

  4. 그렇다면 만약... 레이블명을 바꾸면 어떻게 될까..? 실제로 레이블 변경 후 다시 해당 디렉토리 엔트리를 살펴보면 아래와 디렉토리 엔트리의 Name, 시간정보를 덮어 쓴 것을 확인할 수 있습니다.

  5. 그렇다면!? 파일시스템 포맷시간을 다른 곳에 저장하지 않는 이상 파악이 어렵다는 것입니다. 이런 이유로 레이블은 정확한 포맷시간을 저장한다고 볼 수는 없으나 다른 파일들의 저장시간 등과 함께 고려하여 유추해볼 수 있으며, 만약 FAT32파일시스템에 윈도우 등과 같이 운영체제가 설치 될 경우 설치된 파일의 생성, 수정 시간 등의 정보로 파일시스템 생성시간을 유추해볼 수 있는 것입니다.

  6. 그렇다면 레이블 글자 수의 최대 길이는 몇일까? LNF를 써서 255자까지 가능한걸까? 윈도우에서 실제로 테스트 해보면 11글자 이상 쓸 수 없습니다.(Name 8 + 확장자 3) 솔직히 나라도 레이블 길이 때문에 굳이 LFN를 쓰게끔 하고 싶진 않았을 것 같네요!

FAT 32 기본 구조
디렉토리 엔트리 구조