移动存储
U盘是我们目前使用最多的移动设备,它的底层结构是非常复杂的,通常我们会划分两个层级概念:底层分区表格式和上层文件系统格式。
两个层级
┌─────────────────────────────────────────────┐
│ 底层:分区表格式(决定"卷从哪里开始") │
│ - MBR(绝大多数U盘) │
│ - GPT(大容量/新设备) │
│ - 无分区(软盘模式,直接从0扇区开始是DBR) │
├─────────────────────────────────────────────┤
│ 上层:文件系统格式(决定"文件怎么存放") │
│ - FAT12/16(≤2GB 老U盘/小容量卡) │
│ - FAT32(最常见的U盘格式) │
│ - exFAT(≥32GB 大容量U盘/SD卡) │
│ - NTFS(移动硬盘/手动格式化的U盘) │
└─────────────────────────────────────────────┘
如何识别
不要仅通过工具识别文件系统,取证镜像可能被篡改,必须看十六进制特征:
| 位置 | 特征 | 结论 |
|---|---|---|
| 0x000 | 跳转指令 EB xx 90 / E9 xx xx,0x1FE 为 55 AA | 可能是引导扇区(无分区的软盘模式) |
| 0x003 | "NTFS "(带4空格) | NTFS 的 $Boot |
| 0x003 | "EXFAT "(带3空格) | exFAT 主引导扇区 |
| 0x052 | "FAT32 " | FAT32 的 DBR |
| 0x036 | "FAT16 " / 0x036 "FAT12 " | FAT16/FAT12 的 DBR |
| 0x1BE | 分区表项非全0,0x1FE 为 55 AA,但 0x000 不是跳转指令/无OEM字符串 | MBR 分区表 |
| LBA 1 偏移 0x00 | "EFI PART" | GPT 分区表头 |
U盘最常见组合:1个MBR分区 + FAT32/exFAT。注意有些镜像把 DBR 直接放在 0 扇区(无分区表),此时 mmls 无输出是正常现象,不要误判为镜像损坏。
本目录笔记结构
- 1 MBR分区表 —— MBR/GPT 分区表结构,找分区起点
- 2 FAT文件系统 —— FAT12/16/32 的 BPB、FAT表、目录项(重点)
- 3 exFAT文件系统 —— exFAT 引导区、目录项
- 4 NTFS文件系统 —— $Boot、MFT记录、属性结构
- 5 实战解析要点 —— 010 Editor 使用方法、CTF 常见篡改点、手工定位公式