介绍gzip格式,识别gzip压缩的数据流量。

在协议分析过程中,经常会发现gzip压缩的数据,例如在HTTP协议中,在HTTP头中会标示,内容编码为gzip、DEFLATE。

但是,还有很多情况,例如一些非HTTP协议,特别是私有协议中,数据同样采用gzip压缩,但是,流量中并未写明数据是gzip压缩格式,这就给分析带来了困难。

如何解决这个困难呢?只能从数据本身着手了,需要了解gzip压缩后数据的特征和标记,以确定哪些数据是gzip压缩。

gzip的基础是DEFLATE,它其实是多种压缩文件格式的简称。在RFC1952中对gzip格式进行了定义。

对gzip格式的数据,通常使用zlib库就可以解压缩。

gzip压缩格式的数据的识别,依靠的是gzip格式内的一些特征,gzip格式如下图:

具体如下:

10字节的头,包含幻数、版本号以及时间戳,对应ID1、ID2、CM、FLG、MTIME、XFL、OS;

可选的扩展头extra  data ,如原文件名;

文件体compressed blocks,包括DEFLATE压缩的数据;

8字节的尾注,包括CRC-32校验和CRC32以及未压缩的原始数据长度ISIZE。

在文件头中,ID1和ID2分别为固定值0x1F,0x8B;而CM则定义了压缩使用的算法,目前仅一种,即DEFLATE压缩,对应值为0x08;FLG、MTIME、XFL、OS分别为标记、时间、可选扩展头标记、操作系统标记。

对gzip格式的识别,依靠的就是gzip的起始3字节,因为这三个字节目前是固定的,只有我们在数据流中,发现了1F 8B 08,则表示找到了gzip编码数据的起始了,继续分析就简单了。

如果想找个gzip的示例文件,那就到gzip官网去下载吧:

http://alpha.gnu.org/gnu/gzip/

目录下的压缩包都是gzip压缩格式。

根据各种类型的数据标记,来确定待分析的未知数据流中的数据格式,是一项很有用的技能,希望大家能多锻炼,多掌握,很多数据格式的标记,都可以在网络中找到,有人已经总结好了。

长按进行关注。

gzip格式分析与识别相关推荐

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

    一.gzip 与 zlib的关系 zlib被设计成一个免费的.通用的.合法的.不受任何专利保护的无损数据压缩库,几乎可以在任何计算机硬件和操作系统上使用.zlib数据格式本身可以跨平台移植.zlib由 ...

  2. 音视频开发(31)---H.264格式分析

    H.264格式分析 一.H.264基本流结构 H.264 的基本流(elementary stream,ES)的结构分为两层,包括视频编码层(VCL)和网络适配层(NAL).视频编码层负责高效的视频内 ...

  3. jpg分辨率格式 jpg格式分析(转)

    JPEG格式 格式:JFIF(JPEG档的交换格式) 压缩:JPEG(灰阶影像压缩比约为10:1:彩色影像约为20:1) 以JPEG文件格式保存的图像实际上是2个不同格式的混合物:JPEG格式规范本身 ...

  4. python读取gzip格式及普通格式网页的方法

    一般情况下,我们读取网页分析去返回内容时是这样子的: #!/usr/bin/python #coding:utf-8 import urllib2 headers = {"User-Agen ...

  5. 【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )

    文章目录 一.resources.arsc 资源映射表 混淆 二.resources.arsc 资源映射表二进制格式分析 三.参考资料 资源混淆时 , 需要修改混淆 resources.arsc 资源 ...

  6. 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | 文件头 Header 分析 | 标签 Tag 分析 | 视频标签 Tag 数据分析 )

    文章目录 安卓直播推流专栏博客总结 一. RTMP 格式解析 二. 文件头 Header 分析 三. 标签 Tag 分析 四. 视频标签 Tag 数据分析 安卓直播推流专栏博客总结 Android R ...

  7. 腾讯数平团队 荣获第15届国际文档分析与识别竞赛七项冠军

    导语:在刚刚结束的第15届国际文档分析与识别大会(澳大利亚悉尼)上,腾讯数据平台部(下称"数平")团队获颁7项冠军证书,并受邀在会议上做技术分享. 9.20 - 9.25,作为全球 ...

  8. storm的消息格式分析

    storm的消息格式分析 @(STORM)[storm] storm的消息格式分析 一ITuple接口 二core-storm的消息格式 三trident的消息格式 一trident中tuple的基本 ...

  9. 亚马逊Rekognition发布针对人脸检测、分析和识别功能的多项更新

    今天亚马逊Rekognition针对人脸检测.分析和识别功能推出了一系列更新.这些更新将为用户带来多项能力的改今,包括从图像中检测出更多人脸.执行更高精度的人脸匹配以及获得图像中的人脸得到更准确的年龄 ...

最新文章

  1. 【C++】【十二】排序实现及思路
  2. 【干货】裸金属服务Ironic项目介绍
  3. 【运维囧事】事先没想到客户光驱坏了,主要原因还是自己当初经验不足
  4. hocon配置文件_GitHub - Himmelt/Hocon: Simple Hocon Configuration Library [轻量 Hocon 配置库]...
  5. kimsoft-jscalendar 简介
  6. 《途客圈创业记:不疯魔,不成活》一一2.1 创新工场初印象
  7. jzoj3801-[NOIP2014模拟8.23]骰子【数学期望】
  8. spring boot actuator 入门荔枝
  9. php 空格用什么表示方法,php用空格代替标点符号
  10. 型管件的作用_管道工程基础 - 管件和管道附件的布置规定
  11. ShellExecute函数返回值含义
  12. [转]JavaScript继承详解
  13. 【笔试/面试】—— 数学找规律题
  14. JWT(Json Web Token)介绍
  15. MacDev.GarbageCollectionIsDeprecated-WhenXcodeCompileMacAppProject
  16. Eclipse / Spring Tool Suite 配置
  17. 智慧校园人脸识别门禁系统设计方案
  18. 台式计算机无线网经常掉线,电脑无线网老是掉线怎么办?教你解决掉线问题
  19. String.length() 与 String.getBytes().length
  20. EditPlus格式化xml文档

热门文章

  1. android 图片缓存
  2. oracle 与 client端执行结果不一致_不同模式下Spark应用的执行过程
  3. CocoaPods私有库搭建的记录
  4. 'This NSPersistentStoreCoordinator has no persistent stores 报错
  5. Operation Queues并发编程
  6. 教你实现GPUImage【OpenGL渲染原理】
  7. Aria2打造属于自己的下载神器
  8. ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
  9. iOS 秒数转换成时间,时,分,秒
  10. 《理解 OpenStack + Ceph》---来自-[爱.知识]-推荐