Microsoft PowerPoint - [#3-2] FAT File System - exFAT.pptx

Similar documents
Outline 1. FAT12/16/32 ü Introduction ü Internals ü Directory Structure ü Example

Microsoft PowerPoint - [#4-2] File System Forensic Analysis.pptx

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

슬라이드 1

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

휠세미나3 ver0.4

제목을 입력하세요

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

SRC PLUS 제어기 MANUAL

Microsoft PowerPoint - o8.pptx

3. FAT32 파일시스템의구조 1) 마스터부트레코드 (MBR) 하드디스크의첫번째섹터를 MBR 이라고하며, 512 바이트의크기입니다. MBR 에서는해당디스크의파티션에대한정보를담고있으며, 아래 < 그림1 > 과같은구조를갖습니다. < 그림1. 마스터부트레코드구조 > MBR

슬라이드 1

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

슬라이드 1

Flute-GR_BV199_DOS.indb

디지털포렌식학회 논문양식

05Àå

디지털포렌식학회 논문양식

PowerPoint Presentation

C# Programming Guide - Types

Microsoft PowerPoint - [#4-1] NTFS.pptx

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

PowerPoint Presentation

8.파일시스템과 파일 복구

PowerPoint Presentation

DocsPin_Korean.pages

MS-SQL SERVER 대비 기능

1 법적 고지 사항 SK hynix Inc.는 사전 통보 없이 제품, 정보 및 사양을 변경할 권리를 보유합니다. 본 문서의 제품 및 사양은 참조용입니다. 본 문서의 모든 정보는 어떠한 형태의 보증 없이 있는 그대로 제공됩니다. 본 문서와 여기 포함된 모든 정보는 SK

solution map_....

Chap06(Interprocess Communication).PDF

Tablespace On-Offline 테이블스페이스 온라인/오프라인

APOGEE Insight_KR_Base_3P11

제20회_해킹방지워크샵_(이재석)

8.파일시스템과 파일 복구

7장. 교착상태(deadlock)

알아 둘 사항 아이오드 제조사는 본 기기에 하드디스크를 포함하여 출고하지 않습니다. 따라서 하드디스크에 문제가 발생할 경우, 구매처 또는 해당 하드디스크 서비 스센터에 문의 하시기 바랍니다. 정해진 용도 외의 사용으로 발생한 문제에 대해서, 당사는 어떠한 책임도 지지

bn2019_2

Clover 부트로더를 이용한 해킨토시 설치방법

R50_51_kor_ch1

강의 개요

UDP Flooding Attack 공격과 방어

Solaris Express Developer Edition

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft Word - HD-35 메뉴얼_0429_.doc

untitled

untitled

SMB_ICMP_UDP(huichang).PDF

목 차

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는

I 안전 지침 다음 안전 지침을 이용해 사용자 자신과 북톱(Booktop)를 보호하십 시오. M1022 북톱(Booktop) 컴퓨터를 사용할 때 주의: 휴대용 컴퓨터를 신체 위에 직접 올려놓고 장시간 동 안 사용하지 마십시오. 장시간 작동으로 인해 컴퓨터 밑부 분에서

BMP 파일 처리

vm-웨어-01장

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

K7VT2_QIG_v3


Integ

PowerPoint 프레젠테이션

My Passport for Mac User Manual

Microsoft Word doc

리뉴얼 xtremI 최종 softcopy

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

CD-RW_Advanced.PDF

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint - 알고리즘_2주차_1차시.pptx

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

Mango220 Android How to compile and Transfer image to Target

Microsoft Word _whitepaper_latency_throughput_v1.0.1_for_

Freecom Mobile Drive XXS 사용자에게! Freecom Mobile Drive XXS 외장형 하드 드라이브를 선택해 주셔서 감사합니다. 최 적의 사용과 성능을 위해 본 제품을 사용하기 전에 본 설명서를 주의 깊게 읽을 것 을 권합니다. Freecom T

MAX+plus II Getting Started - 무작정따라하기

슬라이드 1

Microsoft PowerPoint - ch07.ppt

Microsoft PowerPoint - a10.ppt [호환 모드]

Simplify your Job Automatic Storage Management DB TSC

Nero <Application> 설명서

Orcad Capture 9.x

강의10

MPLAB C18 C

초보자를 위한 ADO 21일 완성

thesis-shk

PRO1_02E [읽기 전용]

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

adfasdfasfdasfasfadf

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

Windows Storage Services Adoption And Futures

Microsoft Word - CL5000,5500_KOR_UM_ _.doc

1217 WebTrafMon II

PowerPoint 프레젠테이션

untitled

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

처음에 읽어 주십시오 본 제품을 사용하시기 전에 이 사용설 명서를 자세히 읽고 장래에 참조할 수 있도록 소중히 보관하여 주십시오. 한국내 고객용 경고 화재 또는 감전의 위험을 줄이기 위해 장치를 비 또는 습기에 노출시 키지 않도록 하여 주십시오. 배터리를 햇빛, 불 등

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

SSD의 기본 이해하기 Jon L. Jacobi PCWorld HDD와 SSD 내부 구조 데스크톱 PC나 노트북 컴퓨터의 성능을 가장 쉽게 효율적으로 향상시킬 수 있는 방법 중 하나는 SSD를 설치하는 것이다. 부팅, 윈도우 및 메뉴 실행 속도, 프로그램 및 데이터 로

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

Microsoft PowerPoint - 6.pptx

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

I 안전 지침 사용자 자신과 넷북의 보호를 위해 다음의 안전 지침을 사용하십시오. M912 넷북 컴퓨터를 사용할 때 경고: 휴대용 컴퓨터를 장시간 신체 위에 직접 올려놓고 사용 하지 마십시오. 장시간 작동으로 인해 컴퓨터 밑부분에서 열 이 발생할 수 있습니다. 지속적인

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

Transcription:

exfat (Extended FAT) File System Twitter : @pr0neer Blog : f Email : proneer@gmail.com Kim Jinkook

Outline 1. exfat File System Introduction Internals Directory Structure Example

exfat Introduction Security is a people problem

exfat Introduction Introduction exfat (Extended FAT) : 확장파일할당테이블 마이크로소프트에서새롭게발표한파일시스템 (FAT64 라고도불림 ) 등장배경 외장형장치 대용량멀티미디어파일 오버헤드의최소화 TFAT (Transactional FAT) 과의호환성

exfat Introduction Timeline (Key Dates) 2006 년 11 월 : 윈도우 CE 6.0 에서소개 2008 년 03 월 : exfat 호환성을가진비스타서비스팩 1 출시 2009 년 01 월 : SDXC (Secure Digital extended Capacity) 메모리카드명세발표, 파일시스템으로 exfat 채택 2009 년 01 월 : exfat 을지원하는윈도우 XP 드라이버발표 2009 년 03 월 : Pretec 에서최초로 SDXC 카드출시 2009 년 12 월 : exfat 라이선스프로그램발표 2009 년 12 월 : Diskinternals 에서 exfat 복구프로그램발표

exfat Introduction SDXC? 다양한플래시메모리카드모델 (SD vs. CF) SD 와 SDHC 카드의후속모델 크기는기존제품과동일하지만용량 ( 최대 2 TB) 과성능면에서강점

exfat Introduction Supported Operating Systems Windows Vista SP1 Windows XP SP 2 (with updates) Windows XP SP 3 (with updates) Windows Server 2003 Windows Server 2008 Windows 7 Windows CE 6.0

exfat Introduction Getting the drives put onto Windows XP KB955704 업데이트패치를통해가능 http://www.microsoft.com/downloads/en/details.aspx?familyid=1cbe3906 ddd1 4ca2 b727 c2dff5e30f61&displaylang=en

exfat Introduction Summary of exfat Features 가변형섹터크기 (512 ~ 4096 바이트 ) 최대클러스터크기 (32 MB) 하위디렉터리 (256 MB) NTFS 의특징을가지지만 NTFS 보다낮은오버헤드 TexFAT (Transactional exfat) 호환 ACL (Access Control List), UTC (Universal Time, Coordinated) Timestamp 지원 OEM 파라미터섹터 9 섹터크기의 VBR (Volume Boot Record) 영역 ( 대용량부트프로그램가능 ) 하위디렉터리파일개수증가 ( 최대 2,796,202 개 )

exfat Introduction Scalability and Limitations 파일크기 : 128 PB ( 이론적으로 64 ZB, 마이크로소프트는 512 TB 권장 ) 디렉터리당최대파일개수 : 2,796,202 파일이름최대길이 : 255 문자 볼륨크기 : 16 EB ( 이론적으로는 64 ZB, 마이크로소프트는 512 TB 권장 ) 단위 바이트 KB Kilobyte 2 10 1024 MB Megabyte 2 20 1024 KB GB Gigabyte 2 30 1024 MB TB Terabyte 2 40 1024 GB PB Petabyte 2 50 1024 TB EB Exabyte 2 60 1024 PB ZB Zetabyte 2 70 1024 EB

exfat Introduction Maximum Volume and File Limitations FAT 12 FAT 16 FAT 32 NTFS UDF exfat 최대볼륨크기 32 MB 2 GB 2 TB 16 TB 2 TB 128 PB 최대파일크기 4GB 4GB 4GB 16 EB 16 EB 16 EB 복잡성 / 성능 Low Low Low High Low Low 고장저항력 (Fault Tolerance) 객체권한 (Object Permissions) No No No Yes No Yes No No No Yes No Yes 파일이름최대길이 255 255 256 256 127 Unicode 254 ASCII 255 Unicode

exfat Introduction How to Identify exfat Capability 시스템파일 exfat.sys %SystemRoot%\System32\Drivers\ format.com exfat 옵션포함여부 uexfat.dll %SystemRoot%\System32\ 수정된파일 fmifs.dll fs_rec.sys ifutil.dll Shell32.dll ulib.dll xpsp3res.dll

exfat Introduction How to Identify exfat Capability XP 레지스트리키 SOFTWARE\Microsoft\Updates\Windows XP\SP4\KB955704 SYSTEM\%Current Control Set%\Enum\Root\LEGACY_EXFAT SYSTEM\%Current Control Set%\Services\exFAT 그밖에 exfat 을가지는키 Vista 레지스트리키 SYSTEM\%Current Control Set%\Enum\Root\LEGACY_EXFAT SYSTEM\%Current Control Set%\Services\Eventlog\System\exFat SYSTEM\%Current Control Set%\Services\exFAT 그밖에 exfat 을가지는키

exfat Internals Security is a people problem

exfat Internals Volume Structure Main Boot Region Backup Boot Region FAT Region Data Region

exfat Internals Volume Structure Volume Boot Record Backup Volume Boot Record FAT Cluster Heap Sector 0 Sector 1 Sector 2 Sector 3 Sector 4 Sector 5 Sector 6 Sector 7 Sector 8 Sector 9 Sector 10 Sector 11 Boot Sector Extended Boot Sectors OEM Reserved Checksum Parameter Sector Sector Record Boot Sector : BIOS Parameter Block (BPB), 부트코드, 시그니처 Extended Boot Sectors : 추가적인부트코드 대용량부트프로그램 OEM Parameter Record : 공장에서매체제조사에의해기록된내용 Reserved Sector : 현재정의되어있지않음 Checksum Sector : 이전 11 섹터에대한체크섬값 VBR 의마지막 3 섹터는부트시그니처 (0x55AA) 가존재하지않음

exfat Internals VBR Boot Sector Volume Boot Record Backup Volume Boot Record FAT Cluster Heap Sector 0 Sector 1 Sector 2 Sector 3 Sector 4 Sector 5 Sector 6 Sector 7 Sector 8 Sector 9 Sector 10 Sector 11 Boot Sector Extended Boot Sectors OEM Reserved Checksum Parameter Sector Sector Record 범위 설명 0 2 Jump Command to boot code 3 10 File System Name 11 63 Previously FAT Compatible 64 119 BIOS Parameter Block 120 509 Boot Program 510 511 Signature (0xAA55)

exfat Internals VBR Boot Sector 필드명위치 ( 바이트 ) 크기 ( 바이트 ) 설명 / 값 Jump Boot 0 3 0xEB7690 File System Name 3 8 EXFAT Must Be Zero 11 53 반드시 0x00 ( 기존 FAT 간의오류를막기위해존재 ) Partition Offset 64 8 파티션위치섹터주소 Volume Length 72 8 볼륨에할당된총섹터수 FAT Offset 80 4 1 st FAT 의섹터주소 FAT Length 84 4 FAT 에할당된총섹터수 Cluster Heap offset 88 4 데이터영역의섹터주소 Cluster Count 92 4 데이터영역의총클러스터수 Root Directory First Cluster 96 4 루트디렉터리의클러스터주소 Volume Serial Number 100 4 볼륨시리얼번호 File System Revision 104 2 파일시스템변경사항 Volume Flags 106 2 볼륨플래그 Bytes Per Sector 108 1 섹터당바이트수 Sectors Per Cluster 109 1 클러스터당섹터수 Number of FATs 110 1 FAT 개수 Drive Select 111 1 INT 13h 사용을위해존재 Percent In Use 112 1 데이터영역의사용량 Reserved 113 7 Boot Code 120 390 부트프로그램 Boot Signature 510 2 0xAA55

exfat Internals VBR Boot Sector Jump Command File System Name Previously FAT BPB Region BIOS Parameter Block (BPB) Boot Code Region Signature

exfat Internals VBR Extended Boot Sector Volume Boot Record Backup Volume Boot Record FAT Cluster Heap Sector 0 Sector 1 Sector 2 Sector 3 Sector 4 Sector 5 Sector 6 Sector 7 Sector 8 Sector 9 Sector 10 Sector 11 Boot Sector Extended Boot Sectors OEM Reserved Checksum Parameter Sector Sector Record Extended Boot Sectors : 추가적인부트코드 대용량부트프로그램 별도의부트코드가기록되지않을경우 0x00 으로채워짐 시그니처는 0xAA55

exfat Internals VBR Extended Boot Sector Volume Boot Record Backup Volume Boot Record FAT Cluster Heap Sector 0 Sector 1 Sector 2 Sector 3 Sector 4 Sector 5 Sector 6 Sector 7 Sector 8 Sector 9 Sector 10 Sector 11 Boot Sector Extended Boot Sectors OEM Reserved Checksum Parameter Sector Sector Record OEM Parameter Record : 공장에서매체제조사에의해기록된내용 HDD 에서는현재사용되고있지는않음 포맷시지워지지않음 ( 완전삭제는예외 ) Parameter Field 48 바이트의 10 개필드 16 바이트 GUID + 32 바이트파라미터

exfat Internals VBR Extended Boot Sector Volume Boot Record Backup Volume Boot Record FAT Cluster Heap Sector 0 Sector 1 Sector 2 Sector 3 Sector 4 Sector 5 Sector 6 Sector 7 Sector 8 Sector 9 Sector 10 Sector 11 Boot Sector Extended Boot Sectors OEM Reserved Checksum Parameter Sector Sector Record Checksum Sector : 이전 11 섹터에대한체크섬값 0x68086CCB 4 바이트체크섬값반복

exfat Internals File Allocation Table (FAT) Volume Boot Record Backup Volume Boot Record FAT Cluster Heap Volume Boot Record Backup Volume Boot Record FAT #1 FAT #2 Cluster Heap FAT #2 : TexFAT 에서만지원 버전 1.0 에서는 Transactional exfat (TexFAT) 미지원 FAT #2 는 FAT #1 과항상다음에존재하며동일한크기 FAT12/16/32 에서 FAT 의역할은클러스터체인과할당상태 exfat 에서는할당상태역할은제외 비트맵을통해관리 I/O 성능향상 연속적인클러스터할당일경우 FAT 사용 X, 비연속적일경우에클러스터체인으로만활용

exfat Internals File Allocation Table (FAT) Volume Boot Record Backup Volume Boot Record FAT Cluster Heap Volume Boot Record Backup Volume Boot Record FAT #1 FAT #2 Cluster Heap 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x0000 Media Type Status Byte Cluster 2 Cluster 3 0x0010 Cluster 4 Cluster 5 Cluster 6 Cluster 7 Media Type 플로피미지원 0x0020 Cluster 8 Cluster 9 Cluster 10 Cluster 11 항상 0xFFFFFFF8 0x0030 Cluster 12 Cluster 13 Cluster 14 Cluster 15 Status Byte 0x0040 Cluster 16 Cluster 17 Cluster 18 Cluster 19 사용하지않음 0x0050 Cluster 20 Cluster 21 Cluster 22 Cluster 23 항상 0xFFFFFFFF

exfat Internals File Allocation Table (FAT) As soon as media is formatted 0x00000000 : No significant meaning 0x00000001 : Not a valid cell value 0xFFFFFFF6 : Largest Value 0xFFFFFFF7 : Bad Block 0xFFFFFFF8 : Media Descriptor 0xFFFFFFF9 ~ E :NotDefined 0xFFFFFFFF : End of File (EOF) Cluster 2 : Allocation Bitmap Cluster 3 : UP-Case Table Cluster 4 : Root Directory

exfat Internals File Allocation Table (FAT) FAT Example FAT Offset Boot Sector in VBR FATLinked List Array 0xFFFFFFF8 0xFFFFFFFF +0 +4 2 +8 First Cluster 40 Directory Record 40 41 42 43 41 80 +160 +164 +168 +172 80 81 82 101 +320 +324 +328 100 101 102 0xFFFFFFFF (EOF) +400 +404 +408 103 +412

exfat Internals Allocation Bitmap Table Root Directory First Cluster Boot Sector in VBR Volume Label Directory Record Root Directory UP Case Table Directory Record First Cluster Allocation Bitmap Directory Entry First Cluster Cluster 2 9 Cluster 10 17 Cluster 18 25 Cluster 16 33 Cluster 34 41 Cluster 42 4949 Cluster 74 81 Cluster 82 89 Cluster 90 97 Cluster 98 105 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 +0 +1 +2 +4 +8 +4 +8 +0 +4

exfat Internals Cluster Heap Volume Boot Record Backup Volume Boot Record FAT Cluster Heap Cluster Heap exfat 파일시스템의데이터영역 루트디렉터리 하위디렉터리 UP-Case 테이블 Allocation Bitmap 파일

exfat Directory Structure Security is a people problem

exfat Directory Structure Root Directory 하위디렉터리, 파일, 볼륨레이블, UP Case 테이블위치, 할당비트맵 (Allocation Bitmap) 위치등으로사용 TexFAT (Transactional FAT), ACL (Access Control List) 은현재윈도우 CE 버전에서만지원 각파일및디렉터리는 3 ~ 19 개의엔트리사용 디렉터리엔트리 32 바이트크기 첫바이트형식코드 (Type Code) 를통해해당엔트리의상태및목적을나타냄

exfat Directory Structure Root Directory Type Code 형식코드 위치 크기 In Use 7 1 Category 6 1 Importance 5 1 Code 0 5 In Use 0 : Not In Use 1 : In Use Category 0 : Primary Entry 1 : Secondary Entry Importance 0 : Critical Entry 1 : Benign Entry Code Identifiers the entry

exfat Directory Structure Root Directory 총 10 개의디렉터리엔트리사용 볼륨레이블디렉터리엔트리 (Volume Label Directory Entry) 할당비트맵디렉터리엔트리 (Allocation Bitmap Directory Entry) 대문자테이블디렉터리엔트리 (UP Case Directory Entry) 볼륨 GUID 디렉터리엔트리 (Volume GUID Directory Entry) TexFAT 패딩디렉터리엔트리 (TexFAT Padding Directory Entry) 윈도우 CE 접근제어테이블디렉터리엔트리 (Windows CE Access Control Table Directory Entry) 파일디렉터리엔트리 (File Directory Entry) 스트림확장디렉터리엔트리 (Stream Extension Directory Entry) 각파일및디렉터리당 3 개의엔트리구성 파일이름확장디렉터리엔트리 (File Name Extension Directory Entry)

exfat Directory Structure Volume Label Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Char Cnt Volume Label 0x10 Volume Label Reserved 데이터구조 필드명 위치 크기 설명 / 값 Entry Type 0 1 083 0x83 Character Count 1 1 레이블문자열길이 Volume Label 2 22 볼륨레이블 ( 유니코드 ) Reserved 24 8 형식코드표현 형식코드 위치 크기 값 In Use 7 1 1 Category 6 1 0 Importance 5 1 0 Code 0 5 00001 볼륨레이블최대길이 : 11 글자 볼륨레이블을할당하지않을경우 ( 포맷시 ), 형식코드값은 0x03 In Use 비트가 0 이되지만, 삭제된것이아니라단지사용하지않음을의미

exfat Directory Structure Volume Label Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Char Cnt Volume Label 0x10 Volume Label Reserved 볼륨레이블을지정안한경우 볼륨레이블을지정한경우

exfat Directory Structure Allocation Bitmap Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type BitM Flags Reserved 0x10 Reserved First Cluster Data Length 데이터구조 필드명 위치 크기 설명 / 값 Entry Tpe Type 0 1 081 0x81 Bitmap Flags 1 1 비트맵플래그 Reserved 2 18 First Cluster 20 4 시작클러스터주소 형식코드표현 형식코드 위치 크기 값 In Use 7 1 1 Category 6 1 0 Importance 5 1 0 Code 0 5 00011 Data Length 24 8 데이터길이 비트맵플래그표현 할당비트맵테이블은최대 2개 (TexFAT 사용시 ) 비트 크기 값 의미 7 1 Reserved 보통클러스터 2 번에위치 ( 가변적 ) 0 1 0 1 st Bitmap 데이터길이는바이트길이 0 1 1 2 nd Bitmap

exfat Directory Structure Allocation Bitmap Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type BitM Flags Reserved 0x10 Reserved First Cluster Data Length

exfat Directory Structure UP Case Table Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Reserved1 Table Checksum Reserved2 0x10 Reserved2 First Cluster Data Length 데이터구조 필드명 위치 크기 설명 / 값 Entry Type Tpe 0 1 082 0x82 Reserved1 1 3 Table Checksum 4 4 테이블체크섬 Reserved2 8 12 형식코드표현 형식코드 위치 크기 값 In Use 7 1 1 Category 6 1 0 Importance 5 1 0 Code 0 5 00010 First Cluster 20 4 시작클러스터주소 Data Length 24 8 데이터길이 파일명을대문자로변환할때사용 ( 파일이름과검색문자열의비교 ) 테이블사용이전에체크섬계산필요

exfat Directory Structure UP Case Table Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Reserved1 Table Checksum Reserved2 0x10 Reserved2 First Cluster Data Length

exfat Directory Structure Volume GUID Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type 2 nd Cnt Set Checksum General Primary Flags Volume GUID 0x10 Volume GUID Reserved 데이터구조 필드명 위치 크기 설명 / 값 Entry Type Tpe 0 1 0A0 0xA0 Secondary Count 1 1 항상 0x00 Set Checksum 2 2 형식코드표현 형식코드 위치 크기 값 In Use 7 1 1 Category 6 1 0 Importance 5 1 1 General Primary Flags 4 2 주요플래그 Code 0 5 00000 Volume GUID 6 16 볼륨 GUID 주요플래그표현 Reserved 22 10 필드위치크기값 Benign Primary 엔트리 하나만존재하고없을수도있음 Allocation Prossible No FAT Chain 1 1 Custom 2 14 0 1 0 No 0 Valid 1 Invalid

exfat Directory Structure Windows CE Access Control Table Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Reserved 0x10 Reserved 데이터구조 필드명 위치 크기 설명 / 값 Entry Tpe Type 0 1 0E2 0xE2 Reserved 1 31 Benign Secondary 엔트리 형식코드표현 형식코드 위치 크기 값 In Use 7 1 1 Category 6 1 0 Importance 5 1 0 Code 0 5 00010 버전 1.0 에서는지원하지않음 ( 윈도우 CE 만지원 )

exfat Directory Structure File + Stream Extension + File Name Extension Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type 2 nd Cnt Set Checksum File Attributes Reserved1 Created Time Last Modified Time 0x10 Last Accessed Time Create 10ms Last Mod 10ms Creat ed TZ Last Mod TZ Last Acc TZ Reserved2 File Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Gen 2 nd Flags Reser ved1 Name Len Name hash Reserved2 Valid Data Length 0x10 Reserved3 First Cluster Data Length Stream Extension Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Gen 2 nd Flags File Name 0x10 File Name File Name Extension Entry

exfat Directory Structure File Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type 2 nd Cnt Set Checksum File Attributes Reserved1 Created Time Last Modified Time 0x10 Last Accessed Time Create 10ms Last Mod 10ms Creat ed TZ Last Mod TZ Last Acc TZ Reserved2 데이터구조 필드명 위치 크기 설명 / 값 Entry Type 0 1 0x85 Secondary Count 1 1 Set Checksum 2 2 File Attributes 4 2 파일속성 Reserved1 6 2 Created Time 8 4 DOS Timestamp 형식 Last Modified Time 12 4 DOS Timestamp 형식 Last Accessed Time 16 4 DOS Timestamp 형식 Created 10ms 20 1 생성시간 10ms 증가값 Last Modified 10ms 21 1 마지막수정시간 10ms 증가값 Created TZ Offset 22 1 생성시간 Timezone 위치 Last Modified TZ Offset 23 1 마지막수정시간 Timezone 위치 Last Accessed TZ Offset 24 1 마지막접근시간 Timezone 위치 Reserved2 25 7 형식코드표현 형식코드 위치 크기 값 In Use 7 1 1 Category 6 1 0 Importance 5 1 0 Code 0 5 00101 파일속성표현 속성 위치 크기 마스크 Reserved2 6 10 Archive 5 1 0x20 Directory 4 1 0x10 Reserved1 3 1 System 2 1 0x04 00 Hidden 1 1 0x02 Read Only 0 1 0x01

exfat Directory Structure File Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type 2 nd Cnt Set Checksum File Attributes Reserved1 Created Time Last Modified Time 0x10 Last Accessed Time Create 10ms Last Mod 10ms Creat ed TZ Last Mod TZ Last Acc TZ Reserved2 생성시간, 마지막수정시간, 마지막접근시간저장 10ms 단위의생성및마지막수정시간저장 각시간별타임존 (Time Zone) 저장 윈도우 XP 환경에서 10ms 단위의시간필드이상동작 ( 확인필요 )

exfat Directory Structure File Directory Entry File Deletion 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type 2 nd Cnt Set Checksum File Attributes Reserved1 Created Time Last Modified Time 0x10 Last Accessed Time Create 10ms Last Mod 10ms Creat ed TZ Last Mod TZ Last Acc TZ Reserved2 삭제전 삭제후

exfat Directory Structure Stream Extension Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Gen 2 nd Flags Reser ved1 Name Len Name hash Reserved2 Valid Data Length 0x10 Rserved3 First Cluster Data Length 데이터구조 필드명위치크기설명 / 값 Entry Tpe Type 0 1 0C0 0xC0 General Secondary Flags 1 1 Reserved1 2 1 Name Length 3 1 이름길이 Name hash 4 2 이름해쉬 ( 디렉터리검색에사용 ) Reserved2 6 2 형식코드표현 형식코드 위치 크기 값 In Use 7 1 1 Category 6 1 1 Importance 5 1 0 Code 0 5 00000 2차플래그표현 필드 위치 크기 값 Valid Data Length 8 8 유효한데이터길이 Reserved3 16 4 First Cluster 20 4 시작클러스터 Data Length 24 8 데이터길이 Allocation Possible 0 1 No FAT Chain 1 1 Custom 2 14 0 No 1 Yes 0 Valid 1 Invalid

exfat Directory Structure Stream Extension Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Gen 2 nd Flags Reser ved1 Name Len Name hash Reserved2 Valid Data Length 0x10 Rserved3 First Cluster Data Length 파일의크기및위치정보저장 파일이름해쉬 디렉터리검색속도향상 No FAT Chain 플래그 : 1 클러스터가연속적으로할당되어있음을의미 시작클러스터부터파일용량만큼획득

exfat Directory Structure Stream Extension Directory Entry File Deletion 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Gen 2 nd Flags Reser ved1 Name Len Name hash Reserved2 Valid Data Length 0x10 Rserved3 First Cluster Data Length 삭제전 삭제후

exfat Directory Structure File Name Extension Directory Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Gen 2 nd Flags File Name 0x10 File Name 데이터구조 필드명위치크기설명 / 값 Entry Tpe Type 0 1 0C1 0xC1 General Secondary Flags 1 1 0x00 File Name 2 30 파일명 15 글자 ( 유니코드 ) 할당이가능하지않음 시작클러스터및데이터길이필드가없음 최대 255 글자의파일명가능 17 개파일이름확장디렉터리엔트리필요 형식코드표현 형식코드위치크기값 In Use 7 1 1 Category 6 1 1 Importance 5 1 0 Code 0 5 00001 이차플래그표현 필드위치크기값 Allocation Possible 0 1 No FAT Chain 1 1 Custom 2 14 0 No 1 Yes 0 Valid 1 Invalid

exfat Directory Structure File Name Extension Directory Entry Multiple Entry 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Gen 2 nd Flags File Name 0x10 File Name Reverse Engineering the Microsoft Extended FAT File System (exfat).pdf

exfat Directory Structure File Name Extension Directory Entry File Deletion 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 0x00 Entry Type Gen 2 nd Flags File Name 0x10 File Name 삭제전 삭제후

exfat Example Security is a people problem

exfat Example File(Not fragmented) Allocation C:\Downloads\proneer.txt (13KB) Cluster Heap Cluster Size : 4K FAT Allocation Bitmap 011110000 ~F8 ~FF Root Directory Cluster 300 ~03 0x85 (Attributes, Timestamp, ) ~FF ~05 ~FF UP Case Table 0x85 (Attributes, Timestamp, ) 0xC0 (Name, First clus, Data len) 300 0xC1 Downloads (File Name) 0xC0 (Name, First clus, Data len) 301 0xC1 proneer.txt (File Name) ~FF 300 00 301 302 303 304 305 00 00 00 00 00 Not Changed Real Data ~ ~ 300 301 302 303 304 305 306 00

exfat Example File(Not fragmented) Deletion C:\Downloads\proneer.txt (13KB) Cluster Heap Cluster Size : 4K FAT Allocation Bitmap 000000000 ~F8 ~FF Root Directory Cluster 300 ~03 0x05 (Attributes, Timestamp, ) ~FF ~05 ~FF UP Case Table 0x85 (Attributes, Timestamp, ) 0xC0 (Name, First clus, Data len) 300 0xC1 Downloads (File Name) 0x40 (Name, First clus, Data len) 301 0x41 proneer.txt (File Name) ~FF 300 00 301 302 303 304 305 00 00 00 00 00 Not Changed Real Data ~ ~ 300 301 302 303 304 305 306 00

exfat Example File(Fragmented) Allocation C:\Downloads\proneer.txt (13KB) Cluster Heap Cluster Size : 4K FAT Allocation Bitmap 011001100 ~F8 ~FF Root Directory Cluster 300 ~03 0x85 (Attributes, Timestamp, ) ~FF ~05 ~FF UP Case Table 0x85 (Attributes, Timestamp, ) 0xC0 (Name, First clus, Data len) 300 0xC1 Downloads (File Name) 0xC0 (Name, First clus, Data len) 301 0xC1 proneer.txt (File Name) ~FF 300 301 302 00 302 Real Data 305 303 304 305 00 00 306 Changed ~ 300 301 302 303 304 305 306 306 ~FF

exfat Example File(Fragmented) Allocation C:\Downloads\proneer.txt (13KB) Cluster Heap Cluster Size : 4K FAT Allocation Bitmap 000000000 ~F8 ~FF Root Directory Cluster 300 ~03 0x05 (Attributes, Timestamp, ) ~FF ~05 ~FF UP Case Table 0x85 (Attributes, Timestamp, ) 0xC0 (Name, First clus, Data len) 300 0xC1 Downloads (File Name) 0x40 (Name, First clus, Data len) 301 0x41 proneer.txt (File Name) ~FF 300 301 302 00 00 Real Data 00 303 304 305 00 00 00 Changed ~ 300 301 302 303 304 305 306 306 00

Quiz! Security is a people problem

Quiz! exfat FAT32 과다른점은? VBR (Volume Boot Record) 가가지는총섹터수는? Cluster Heap 영역에존재하는객체는? 한파일이가질수있는최대엔트리개수는? 파일의시간정보가저장되는엔트리는? 10ms 단위의시간이저장되는시간필드는? 각파일과디렉터리마다생성되는디렉터리엔트리의개수및종류는?

Quiz! exfat 비할당클러스터판별법은? 삭제된파일판별법은? 덮어써진파일판별법은?

Question & Answer