IDAT
一、准备知识
图像数据块 IDAT(image data chunk):它存储实际的数据,在数据流中可包含多个连续顺序的图像数据块。
1、储存图像像数数据
2、在数据流中可包含多个连续顺序的图像数据块
3、采用 LZ77 算法的派生算法进行压缩
4、可以用 zlib 解压缩
值得注意的是,IDAT 块只有当上一个块充满时,才会继续一个新的块。
二、工具
pngcheck或010 editor 的png template
三、分析
1、看看你IDAT块的大小
前面的块都是65524,到了0x150008变为45027,再到0x15aff7的138。
很明显最后一个 IDAT 块是有问题的,因为他本来应该并入到倒数第二个未满的块里。
故,
0x150008中的45027位数据是正常的图片信息
0x15aff7的138位数据是一定人为录入的,且所在的数据块也是人为创建的。
2、从可疑IDAT块里提取信息
IDAT中的数据采用 LZ77 算法的派生算法进行压缩,所以可以用 zlib 解压缩
可以用010 editor直接提取出数据,然后扔进zlib解压脚本里解压获得原始数据。