파티션과 볼륨
- 파티션: 저장 장치 내의 공간을 분리해 독립적인 공간을 만든 것
- 볼륨: 파일시스템을 갖춘 저장 공간, 드라이브라고도 부름 (C 드라이브라고 부르는 것이 바로 볼륨 지칭하는 것)

[파티션, 볼륨 실습]
- 여분의 저장 공간 필요, USB 사용이 가장 좋지만 가급적이면 운영체제가 설치되어 있지 않은 D, E 드라이브로 실습 진행
- 볼륨 포맷 실습은 잘못 진행하면 중요 정보가 모두 삭제되니, 정확히 따라 하고 있는지 중간중간 확인 필요
Windows + s 버튼 누르고 '파티션' 검색해 '하드디스크 파티션 만들기 및 포맷' 실행해 줌

디스크 0은 3개의 파티션으로 나뉘어 있고, 중간 파티션은 NTFS 파일시스템을 가지며, C 드라이브라는 문자가 부여됨
디스크 1은 1개의 파티션으로 구성되어 있고, FAT32 파일시스템이 설치되어 있으며, D 드라이브라는 이름이 붙여짐

볼륨 선택하고 우클릭한 후 위 사진처럼 '포맷' 버튼 눌러줌
* 포맷(Format): 볼륨에 파일시스템을 다시 설치하는 것

볼륨 레이블과 파일 시스템 선택해 줌
- 볼륨 레이블: 볼륨 이름, 11자로 제한됨
- 파일 시스템: FAT32, NTFS 중 선택 (뒤에서 자세하게 설명함)


볼륨 포맷할 때와 마찬가지로 볼륨 우클릭한 후 '볼륨 삭제' 버튼 눌러줌
→ 위의 오른쪽 사진과 같이 변함(볼륨 삭제되고 파티션만 남은 모습)

'할당되지 않음' 영역 우클릭하고 '새 단순 볼륨' 클릭

위 사진과 같이 시스템이 자동으로 넣어주는 값보다 훨씬 작은 값을 넣고 다음 버튼 눌러줌
→ 여기서 넣는 값이 파티션의 크기 결정


별도 설정 없이 계속 다음 버튼 눌러줌

위 사진과 같이 디스크 1에 2개의 파티션이 생성되었고,
파티션 1에는 FAT32 파일시스템이 설치된 볼륨(E 드라이브)이 위치하는 것을 확인할 수 있음
이 과정을 반복하면 파티션 2에는 NTFS 파일시스템이 설치된 볼륨 만들기도 가능
파일시스템
- 디지털 데이터를 효과적으로 관리하기 위해 파일을 체계적으로 기록하는 방식
- 주요 기능
- 저장장치 내에 비어있는 공간 파악, 적절한 공간에 파일 저장
- 사용자가 파일을 생성·수정·삭제할 수 있도록 함
- 파일 생성·수정·변경 시각 등 관리
- 파일 생성·수정·삭제에 대한 로그를 기록하고 백업, 복구 등을 지원
- 사용자에 따라 접근 권한을 부여하기도 함
파일시스템의 종류

NFTS(New Techonology File System)
- 1993년 Windows NT 3.1에 버전 v1.0으로 처음 출시된 파일 시스템, 2001년에 현재 사용되고 있는 v3.1으로 발표
- 오늘날 주로 사용되는 Windows 7, 10, 11 등 버전에서 기본으로 사용됨
- 파일 및 폴더 암호화 기능, 저널링 기능, 손상된 파일 복구 기능 등 다양한 기능 지원
ReFS(Resilient File System)
- Microsoft에서 NTFS를 대체하기 위해 개발한 파일시스템, 현재 기본으로 생성되지는 X
- 파일 무결성 검사, 데이터 복구 기능 제공하며 NTFS 보다 높은 성능 보임
EXT4(Extended File System 4)
- EXT 파일시스템 중 가장 최신 버전의 파일시스템
- 기존 블록 매핑 방식을 Extent 방식으로 바꾸면서 더 많은 파일 더 빠르게 접근 가능
- 최대 볼륨 크기와 최대 파일 크기 확장함, 하위 버전에 대한 호환성 지원
UFS(Unix File System)
- Unix 및 Unix 계열 운영체제에서 쓰이는 파일시스템
- Unix 기반 운영체제에서 사용하는 파일시스템들의 근간을 이룸
HFS+(Hierarchical File System Extended)
- HFS의 한계를 극복하고 더 많은 파일 개수, 파일 용량, 파티션 용량 제공하도록 만들어짐
- 1998년 macOS 8.1과 함께 발표되어 맥북, 아이팟 등에 사용됨
APFS(Apple File System)
- HFS+ 대체하기 위해 2016년 발표된 파일시스템
- macOS Sierra(10.12.4) 및 iOS 10.3부터 현재까지 사용 중
- HFS+의 데이터 체크섬, 나노초 타임스탬프, 스냅샷 등 한계를 극복하고 암호화, 데이터 무결성 등 보다 나은 기능 제공
FAT32(File System Table)
- Microsoft에서 개발해 MS-DOS부터 이용되던 파일시스템
- 이전 파일시스템에 비해 최대 파티션 크기, 최대 파일 크기가 향상됨
- 장점
- 다양한 운영체제에서 널리 지원되어 호환성이 뛰어남
- 단순한 파일시스템 구조로 인해 비교적 저장 공간을 많이 확보할 수 있음
- 이런 이유로 USB, SDCard 등 이동식 저장장치에서 여전히 많이 사용됨
- 단점
- 최대 파일크기가 약 4GB로 작은 편, 최대 파티션의 크기가 8TB로 대용량 파티션에서는 사용하기 힘듦
- 자료 구조 단순, 데이터 복구와 같은 기능 지원해주지 않음
exFAT(Extended File Allocation Table)
- 이전 FAT32의 한계 극복하기 위해 Microsoft에서 개발
- FAT32에 비해 최대 파일 크기와 최대 파티션 크기가 확장됨
- 디렉터리에 저장할 수 있는 파일의 최대 개수 증가, 더 정밀한 시간 데이터의 저장 가능
파일시스템과 디지털 포렌식
- 포렌식에서 파일시스템이 중요한 이유는 파일시스템을 알아야 디스크 이미지의 분석이 가능하기 때문
1. 파일시스템에 대한 정보 없이는 데이터 저장 위치 알아내기 어려움
(파일 카빙 기법* 을 통해 일부 데이터의 위치 알아낼 수 있지만 정확도 떨어짐)
* 파일 카빙(File Carving): 파일 시그니처와 같은 파일의 구조적 특징을 이용해 파일시스템 메타데이터 없이 원본 파일을 복원할 수 있는 기법
2. 데이터의 위치를 알아냈다고 해도, 메타데이터를 알아내기 위해서는 파일시스템 구조에 대한 이해가 반드시 필요함
- 메타데이터(Metadate): 데이터에 대한 정보
> 하나의 Excel 파일이 있다고 했을 때 파일 이름, 저장 경로, 파일 크기, 생성·수정·접근 시간 등을 나타낸 정보들을 말함 - 파일의 데이터와 메타데이터들을 별도의 위치에 저장됨 (이후 파일시스템이 서로 다른 위치의 정보들을 하나로 모아서 사용자가 보기 쉽게 보여주는 것)
- 따라서 파일시스템 구조에 대한 이해가 있다면 디스크 이미지로부터 이러한 메타데이터들을 추출할 수 있음
3. 파일시스템을 이해하면 파일의 변경 이력을 가져오거나 삭제된 파일을 복구하는 일이 가능해짐
- 대부분의 파일시스템은 저널링(Journaling) 기능 지원
- 저널링 기능: 시스템 충돌이나 정전을 대비해 데이터 쓰기 전후 상태를 기록하는 파일시스템의 기능
- 저널링 과정에서 많은 로그 생성되는데, 이는 디지털 포렌식의 주요 분석 대상이 됨
- Windows 시스템 복원 기능 또한 시스템의 변화를 추적하는 데에 직접적인 도움을 줌
MBR과 VBR
- MBR(Master Boot Record): 디스크(저장 장치)의 가장 첫 섹터에 저장되는 데이터
= 디스크 가장 처음 512 바이트 영역에 저장되는 데이터 - VBR(Volume Boot Record): 볼륨의 가장 첫 섹터에 저장되는 데이터
→ MBR과 다르게 하나 이상의 섹터로 구성됨, 그 크기는 파일시스템과 클러스터 크기에 따라 달라질 수 있음
* 섹터: 디스크의 최소 기억 단위, 전통적인 하드디스크에서는 512 바이트 크기를 가짐
MBR과 VBR의 역할
- 컴퓨터 메인보드의 BIOS가 POST(Power On Self-Test) 과정과 기본적인 하드웨어 점검을 끝내면, MBR 내에 있는 부트 코드(Boot Code) 호출
- MBR은 저장 장치의 파티션 정보, 각 파티션에 설치된 볼륨의 정보를 가짐 → 이러한 정보를 바탕으로 부팅 가능한 볼륨 식별, 해당 볼륨의 부트 코드로 실행 흐름을 넘기는 역할을 함
- VBR 부트 코드는 MBR에서 실행 흐름을 이어 받아 해당 볼륨에서 컴퓨터가 부팅할 수 있도록 부트로더 및 커널 로드

* 슬랙(Slack): 파일 시스템이나 데이터의 구조에서 빈 공간을 나타냄
** MBR 슬랙: MBR 이후 다음 자료 구조가 오기 전까지의 빈 공간
[MBR의 구조 - 실습]
- HxD를 관리자 권한으로 실행, 도구 탭에서 '디스크 열기' 클릭 후 물리 디스크 중 하나 선택 (가급적 '읽기 전용으로 열기')
- 최근 SSD는 MBR 대신 GPT(GUID Partition Table) 구조를 이용하므로 아래 실습과 구조가 다름 → USB 이용


각각의 파티션 테이블 엔트리는 16바이트로 구성되며, 그 구조는 아래와 같음


파티션 엔트리 #1 해석
- 부트 플래그: 부팅 불가(0x00)
- CHS 시작 주소: 0x2120
- 파일시스템 타입: FAT32(0x0C)
- CHS 끝 주소: 0x7CC480
- LBA 시작 주소: 0x800
- 파티션 총 섹터 개수: 0xDAC000
주소 지정 방식
- CHS(Cylinder-Head Sector) 방식: 하드디스크의 실린더, 헤드, 섹터라는 물리적 특성 이용해 주소 표기, 현재 거의 사용 X
- LBA(Logical Block Addressing) 방식: 저장장치 내의 모든 섹터들을 일차원적으로 배열하여 순서대로 숫자 지정해 주소 계산
LBA 시작 주소, 파티션 총 섹터 개수의 단위는 섹터임 → 섹터는 16진수로 0x200 (512 바이트이므로)
- LBA 시작 주소: 0x800 (섹터) > 0x800 * 0x200 = 0x100000
- 파티션 크기: 0xDAC000 (섹터) > 0xDAC000 * 0x200 = 0x1B5800000

VBR의 구조
- 파일시스템마다 전부 다르기 때문에 파일시스템 각각의 VBR 구조에 대해 공부해야 함 (다음 강의에서 살펴봄)
[VBR 실습]
문제 - 주어진 VBR 을 분석하고, 플래그를 계산하시오
- A: 파일시스템이 FAT32면 1, NTFS면 2
- B: 해당 볼륨의 크기
- C: 볼륨 시리얼 번호
FLAG = DH{(A + B + C)} (단, 더한 값을 십진수로 변환할 것)

해당 파일을 HxD로 연 뒤, 각 바이트가 어떤 필드에 대응하는지 확인하면 문제 해결 가능
(값 읽을 때 리틀-엔디언 표기법으로 해석해야 함)
- A: 1(FAT32)
- B: 0x3E8000(0x20-0x23) * 0x200 = 0x7D000000
- C: 0x0EA8EE8A(0x43-0x46)
따라서 정답은? DH{2343104139}
[실습] Corrupted Disk Image
문제 - 주어진 디스크 이미지 복원
- FLAG 형식: DH{something}
- something의 길이는 32자

CorruptedDiskImage.E01 파일을 FTK Imager 로 열엇더니 이렇게 뜸
파일 raw 로 export 해서 HxD로 엶

실습 파일에선 안보이던 복구용 VBR 이 보임 (전형적인 NTFS 파일시스템의 구조)
해당 VBR을 이용해 NTFS 파일시스템의 복구가 가능

복구용 VBR 1개 섹터(0x200 Byte) 복사해 볼륨 맨 앞에 붙여넣기 해줌
저장하고 FTK Imager 로 다시 열엇더니

플래그 힌트 발견
바로 밑에 keyFile 을 sha-256로 계산하란 뜻인듯

HashCalc 이용해서 알아냄
정답은?
DH{e71e2b1230fd090aebd3a347310acac611e0161684fb4b7703135b6cc91bb7ac}
'SWUFORCE > Dreamhack' 카테고리의 다른 글
| [드림핵 스터디] 6주차 - 시스템 로그, Track_the_file (0) | 2026.05.19 |
|---|---|
| [드림핵 스터디] 레지스트리, find the USB, Autoruns (0) | 2026.05.12 |
| [드림핵 스터디] 3주차 - 디지털 데이터와 디지털 장치 (0) | 2026.04.07 |
| [드림핵 스터디] 2주차 - 디지털 증거 (0) | 2026.03.31 |
| [드림핵 스터디] 1주차 - 소개, 디지털 포렌식 기초 (0) | 2026.03.24 |