【协议分析】Gzip格式与解析

一、gzip 与 zlib的关系

zlib被设计成一个免费的、通用的、合法的、不受任何专利保护的无损数据压缩库,几乎可以在任何计算机硬件和操作系统上使用。zlib数据格式本身可以跨平台移植。zlib由Jean-loup Gailly(压缩)和Mark Adler(解压)编写。Jean-loup也是gzip(1)的主要作者,也是compp .compression FAQ列表的作者和Info-ZIP的Zip的前维护者;Mark也是gzip和UnZip的主要解压缩例程的作者,也是Zip的原始作者。不足为奇的是,zlib中使用的压缩算法与gzip和Zip中使用的压缩算法本质上是相同的,即源自PKWARE的PKZIP 2.x中的“deflate”方法。

GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常 使用GZIP压缩技术来让用户感受更快的速度。

GZIP本身只是一种文件格式,其内部通常采用DEFLATE数据格式,而DEFLATE采用LZ77压缩算法来压缩数据。

GZIP文件由1到多个“块”组成,实际上通常只有1块。每个块包含头、数据和尾三部分。块的概貌如下:

+---+---+---+---+---+---+---+---+---+---+========//========+===========//==========+---+---+---+---+---+---+---+---+
|ID1|ID2| CM|FLG|     MTIME     |XFL| OS|   额外的头字段   |       压缩的数据      |     CRC32     |     ISIZE     |
+---+---+---+---+---+---+---+---+---+---+=

你可能感兴趣的:(渗透&APT,协议审计)