让gpt自己总结的
ZIP文件标志
50 4B 03 04 → Local File Header(本地文件头,单个文件数据开始)
50 4B 01 02 → Central Directory(中央目录,记录文件索引信息)
50 4B 05 06 → End of Central Directory(目录结束,ZIP 结束标记)
判断 ZIP 是否加密,不看 PK 本身,而看 50 4B 01 02 中的 General Purpose Bit Flag。
从 50 4B 01 02 开始直接数,第 9~10 字节就是 flag:
00 00 → 未加密
01 00 → 已加密(bit 0 = 1)
所谓 ZIP 伪加密,就是数据本身没加密,只是把 flag 的最低位(bit 0)改成了 1,让解压软件误以为需要密码。
判断方法:看 flag 是否为 01 00,若改回 00 00 后可正常解压,则说明是伪加密。
JPG 文件标志
FF D8 → JPEG Start Of Image(文件开始)
FF D9 → JPEG End Of Image(文件结束)
FF C0 / FF C2 → SOF(Start Of Frame),记录图像宽高等信息
其中:
FF C0 → Baseline JPEG
FF C2 → Progressive JPEG
JPG 宽高通常在 FF C0 或 FF C2 后,顺序为:高(2字节)→ 宽(2字节)。
PNG 文件标志
89 50 4E 47 0D 0A 1A 0A → PNG Signature(文件头标志)
PNG 文件由多个数据块(Chunk)组成:
IHDR → 文件头块,记录图像宽、高、颜色类型等信息(必须第一个)
IDAT → 图像数据块(可多个,存储压缩后的图像数据)
IEND → 文件结束块
PNG 宽高位于 IHDR 数据块中:
宽(4字节)→ 高(4字节)(大端序)
GIF 文件标志
47 49 46 38 37 61 → GIF87a
47 49 46 38 39 61 → GIF89a
表示 GIF 图片文件(支持动图)
结构特点:
支持多帧图像
包含图像描述块和控制块
BMP 文件标志
42 4D → Bitmap(位图文件)
表示 Windows BMP 图片
结构:
文件头 + 信息头 + 像素数据
PDF文件标志
25 50 44 46 → %PDF(PDF 文件标识)
表示 PDF 文档
结构特点:
由对象(object)和数据流(stream)组成
支持压缩与嵌套
MP3 文件标志
文件头:
49 44 33(ID3标签)
或 FF FB
WAV 文件标志
52 49 46 46 …. 57 41 56 45 → RIFF….WAVE(WAV 音频)
表示 WAV 音频文件
结构:
RIFF 头 + fmt 块 + data 块
7z 文件标志
37 7A BC AF 27 1C → 7-Zip 压缩文件
表示 7z 压缩格式
RAR 文件标志
52 61 72 21 1A 07 00 → RAR4
52 61 72 21 1A 07 01 00 → RAR5
表示 RAR 压缩文件
ELF 文件标志
7F 45 4C 46 → ELF(Executable and Linkable Format)
表示 Linux 可执行文件
EXE 文件标志
4D 5A → MZ(DOS Header)
表示 Windows 可执行文件