标签:00 Bugku 字节 Study 隐写 像素 图像 数据 PNG
-
文件是一张PNG格式的图片
-
首先关于PNG图像文件结构:
PNG文件由一个8字节的文件署名域(HEX: ‘89 50 4E 47 0D 0A 1A 0A’)和按特定结构组织的3个以上的数据块(chunk)组成。
PNG文件标志 PNG数据块 … PNG数据块 PNG定义了两种类型数据块:关键数据块(必需),辅助数据块(可选)。
主要的关键数据块,
-
IHDR (header chunk),文件头数据块,包含图像基本信息。
-
PLTE (palette chunk),调色板数据块。
-
IDAT (image data chunk),图像数据块,存储实际图像数据信息。
-
IEND (image trailer chunk),图像结束数据,最后一个数据块。
每个数据块具体结构,
- Length, 4字节,指定数据块中数据域的长度。
- Chunk Type Code, 4字节,数据块类型码。
- Chunk Data,可变长度,数据块数据,存储类型码指定的数据。
- CRC,4字节,循环冗余检测,对Chunk Type Code域和Chunk Data域内原有的数据校验得出的校验码。
辅助数据块这里提一个,
- pHYs,物理像素尺寸数据块,指定像素大小或者图像宽高比例。
-
-
在WinHex中打开文件,
具体说明如下,
十六进制 含义 89 50 4E 47 0D 0A 1A 0A PNG 标识 00 00 00 0D IHDR数据块的数据域长度为13字节 49 48 44 52 IHDR标识 00 00 01 F4 图像宽度,500 pixels 00 00 01 A4 图像高度,420 pixels 08 06 00 00 00 (这里忽略不谈) CB D6 DF 8A CRC校验值 00 00 00 09 pHYs数据块的数据域长度为9字节 70 48 59 73 pHYs标识 00 00 12 74 x轴上每单位4724像素 00 00 12 74 y轴上每单位4724像素 01 单位metre,00表示未定义实际像素大小,只定义了像素显示比例 DE 66 1F 78 CRC校验值 -
对IHDR类型码域和数据域(49 48 44 52 00 00 01 F4 00 00 01 A4 08 06 00 00 00)做CRC-32校验,校验码为’C7 58 D7 7D‘,与CRC校验值 (‘CB D6 DF 8A’) 不符,推测图像宽度或长度被改动。
-
暴破获得真正的宽与高。
-
修改值,找出flag。
标签:00,Bugku,字节,Study,隐写,像素,图像,数据,PNG 来源: https://blog.csdn.net/m0_52894850/article/details/121550440
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。