📘 Day 37 (2025.08.04.MON) - MBR 분석, 파티션 나누기

🔍 FTK Imager 분석

20250730001.001 - 볼륨만 삭제 (파티션 테이블 64바이트 변경)

20250730001

볼륨 삭제로 인해 정보를 읽을 수 없음

20250730002.001 - raw 포맷 (0섹터 저장되어 있어 분석 가능)

20250730002
📁 파티션 테이블 엔트리 구조 (각 16바이트 × 4)
Offset 크기(Byte) 항목 설명
0x00 1 부트 플래그 0x80이면 부팅 가능, 0x00이면 비활성
0x01 3 시작 CHS 주소 사용되지 않음 (구식 방식)
0x04 1 파티션 타입 예: 0x07(NTFS), 0x0B(FAT32), 0x83(Linux) 등
0x05 3 끝 CHS 주소 사용되지 않음
0x08 4 시작 LBA 주소 파티션 시작 섹터 (논리 블록 주소)
0x0C 4 섹터 수 해당 파티션의 총 섹터 수
🐍 분석 스크립트

6.py: 파티션 엔트리를 16진수 문자열로 입력받아 부트 여부, 타입, 시작 섹터, 크기(MB) 계산

6_1.py: 이미지 파일에서 512바이트(0섹터)만 읽어 파티션 유무 판단

20250730003.001 - 파일 저장 상태

20250730003

20250730004.001 - 파일 삭제 상태

20250730004

20250730005.001 - 다시 포맷된 상태

20250730005
💿 Active Disk Editor

분석 대상: 20250730002.001

MBR
MBR 합계 = 512바이트
🧩 파티션 8개로 분할

주 파티션 4개 중 마지막은 확장 파티션으로 전환되어 논리 드라이브 포함

파일을 숨기면 사용 가능한 공간에서 보이지 않음

00 202100 0C AA2882 00080000 00002000
00 AA2982 07 357005 00082000 00002000
00 357105 0C BF7887 00084000 00002000
00 BF7987 0F F0E4CC 00086000 00788E00

0x0F = Extended Partition (LBA)

MBR은 기본 파티션 4개만 지원

🧪 연습용 USB로 파티션 여러 개 나누기

실습을 통해 USB를 여러 개의 파티션으로 분할함:

00 202100 0C AA2882 00080000 00002000
00 AA2982 07 357005 00082000 00002000
00 357105 0C BF7887 00084000 00002000
00 BF7987 0F F0E4CC 00086000 00788E00

00086000 위치 → 6,293,504 (우클릭 후 이동)

07: NTFS, 55 AA: 시그니처 값 (MBR or VBR)

📦 확장 파티션 위치
00 202100 07 AA2882 00080000 00002000
00 AA2982 05 565105 00082000 00082000
00 000000 00 0000000 0000000 00000000
00 000000 00 0000000 0000000 00000000

Partition 4는 0x0F (Extended) → 직접 보이지 않음

📘 주요 파티션 타입
07: NTFS
0B: FAT32
0C: FAT32 (LBA)
83: Linux
82: Linux swap
05: Extended
0F: Extended (LBA)
A5: FreeBSD
AF: macOS HFS
EE: GPT 보호 MBR
00: Empty
📑 전체 파티션 정보 확인

모든 파티션 테이블을 읽어 파티션 개수 확인

6_1.py 중요 공식 6_1.py