IDAT block小结
原创
: IDAT block小结
IDAT block小结
IDAT块隐写–一生之敌
IDAT定义:
图像数据块IDAT(image data chunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。
IDAT存放着图像真正的数据信息,因此,如果能够了解IDAT的结构,用户就可以很方便的生成PNG图像。
一张图片可以有很多的IDAT块。
说了和没说一样。
先来说一说这个IDAT块长什么样
这里是16进制下的WINHEX截图
IDAT块一般的标识符为IDAT
只需要搜索这个关键字winhex就会整理出来这个IDAT头了。
但是一般的IDAT隐写会体现在IDAT块的长度上,会有一些IDAT块有异常的长度,那么就是解题的关键。
IDAT有固定的长度,正常的PNG图片只有最后一个IDAT块的长度是比其他的要短的。
那么在kali linux中,可以通过以下命令查看IDAT块的信息
1 | #check png picture idat block error:to see the length of idat block |
像是上面的一张图就明显的有问题。这个异常在第3个IDAT块中,0x6049位置。
首先,789C代表了zlib的头。这个文件一般我们看到他的时候是在binwalk解图片的时候。
有几张图片,就有几个zlib文件。
这个很重要
那么这里搜出来有两个789C就很灵了。
这两个789C必须要删一个。
还有就是必须把包含了zlib的一整个IDAT一起删除。
下面的图就信息量很大。
当然这两个合起来去搜索”IDATx”也不是不行。这样搜出来是两个结果,大概率是带有zlib的IDAT块。
删除第一个
这张图片有了新的想法。
删除第二个
无事发生,这张图片就是原本显示的图片。
真是神奇呢。。。
突然觉得所谓的“幻影坦克”是不是可以用类似的原理来分出来两张图片呢。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.