# ZIP

***

* ZIP 文件头 `50 4B 03 04 0A 00 00 00`
* ZIP 文件尾 `50 4B 05 06 00 00 00 00 + 其他字符`

***

Zip文件主要由三部分构成，分别为

* 压缩源文件数据区
  * 压缩源文件数据区中每一个压缩的源文件/目录都是一条记录，其中
    * local file header：文件头用于标识该文件的开始，记录了该压缩文件的信息，这里的文件头标识由固定值 50 4B 03 04 开头，也是 Zip 的文件头的重要标志
    * file data：文件数据记录了相应压缩文件的数据
    * data descriptor：数据描述符用于标识该文件压缩结束，该结构只有在相应的 local file header 中通用标记字段的第3 bit设为 1 时才会出现，紧接在压缩文件源数据后
* 核心目录
  * 记录了压缩文件的目录信息，在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据。
* 目录结束
  * 目录结束标识存在于整个归档包的结尾，用于标记压缩的目录数据的结束。每个压缩文件必须有且只有一个EOCD记录。

***

## Source & Reference

* [CTF-MISC总结](https://ares-x.com/2017/11/07/CTF-Misc%E6%80%BB%E7%BB%93/)
