[CTF隐写]png中CRC检验错误的分析
最近接连碰到了3道关于png中CRC检验错误的隐写题,查阅了相关资料后学到了不少姿势,在这里做一个总结
题目来源:
bugku-MISC-隐写2
bugku-MISC-再来一道隐写
JarvisOJ-MISC-炫酷的战队logo
基础知识:
先分析png的文件格式,用16进制编辑器010editor打开一张正常的png图片,逐字节分析如下:
前八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头,该段格式是固定的
上图中高亮部分称为为chunk[0]段,可以分为以下几块:
前四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13,数据块包含了png图片的宽高等信息,该段格式是固定的
之后的四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示,该段格式也是固定的
之后进入13位数据块,前8个字节00 00 05 56 00 00 03 00中:
前四个字节00 00 05 56(即为十进制的1366),代表该图片的宽,该段数据是由图片的实际宽决定的
后四个字节00 00 03 00(即为十进制的768),代表该图片的高,该段数据是由图片的实际高度决定的
这8个字节都属于13位数据块的内容&#x