【CTF】【winhex】超详细jpg图片结构分析 您所在的位置:网站首页 1129294871_16739712178551n.jpeg 【CTF】【winhex】超详细jpg图片结构分析

【CTF】【winhex】超详细jpg图片结构分析

2023-12-19 15:50| 来源: 网络整理| 查看: 265

文章目录 前言段结构字节高位在前段标识段类型文件头文件尾帧开始(标准JPEG)标志08y轴分辨率x轴分辨率组件数量03 定义Huffman表(霍夫曼表) 段长度段数据 参考资料

前言

本文排版有些乱,例子镶嵌在每个知识点里,但整体实例都是按照顺序讲解的,而对于讲过的知识点不再赘述。

本文也将持续更新。

段结构

JPG文件由一个个段构成 JPG图片所有数据都是高位在前

在这里插入图片描述

字节

在这里插入图片描述 这个红色框框里的两个数表示一个字节

高位在前

什么是高位在前? 例如现实生活中1234,高位在前则表示12 34

而winhex的都是低位在前,在后面会讲到段长度,如00 10,低位在前则表示10 00

段结构包括: 段标识|段类型|段长度|端数据

段标识

1字节,固定为FFH,H表示16进制

段类型

1字节

文件头

名称 SOI 标记码 D8

在这里插入图片描述如图,D8表示本jpg文件的文件头,前面的FF表示段标识

文件尾

名称 EOI 标记码 D9 在这里插入图片描述拉到最后,FF D9表示文件尾

帧开始(标准JPEG) 名称 SOF0 标记码 C0名称 SOF1 标记码 C1 C0与C1在一个文件里只会存在一种,下面以C0为例,C1同样操作

我们查找 FF C0

在这里插入图片描述 在这里插入图片描述

后面两个字节00 11表示段长度,将十六进制转为十进制,可以知道后面有15个字节的数据(段长度占了2字节,并且不包括段标识和段类型) 那么我们可以看到后面的数据

标志08

1个字节

在这里插入图片描述

这个标志固定是08

y轴分辨率

2字节 在这里插入图片描述

计算一下, 在这里插入图片描述

与实际的分辨率(高度)一样 在这里插入图片描述

x轴分辨率

2字节

在这里插入图片描述这两字节表示x轴分辨率,计算一下

在这里插入图片描述与实际上文件的属性是一样的

在这里插入图片描述

组件数量03

这1个字节固定为03

在这里插入图片描述在这里插入图片描述 从03之后的9个字节,都为组件数据,且每个组件数据为3个字节。

组件大小和数量都为固定的。

定义Huffman表(霍夫曼表)

名称 DHT 标记码 C4

固定4个FF C4 其中2个记录亮度,2个记录色度

段长度

2字节 不包含段标识、段类型

例子在帧开始处讲了

段数据

长度为段长度-2

参考资料

https://www.bilibili.com/video/BV1MJ411p7Ly/?spm_id_from=333.999.0.0&vd_source=b914a8de9ea8b12ba5cb6d8edd1b346c



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有