攻防世界:2-1
拿到一个打不开的图片,放到winhex里面,很直观的看到文件头损坏
修改以后还是打不开,继续往下分析
0000 000d说明IHDR头块长为13
4948 4452IHDR标识(ascii码为IHDR)
下面是IHDR数据块的实际内容:
0000 0000图像的宽,
0000 02F8图像的高,
这里很明显发现图像没有宽,
修改为0000 02F8
之后发现还是打不开,继续分析
08 表示色深,这里是2^8=256,即这是一个256色的图像
06 颜色类型,查表可知这是带α通道数据的真彩色图像
00 PNG Spec规定此处总为0(非0值为将来使用更好的压缩方法预留),表示使压缩方法(LZ77派生算法)
00 同上
00 非隔行扫描
e0 773d f8 CRC校验
发现都没有问题,再看最后文件尾IEND块,也没有发现问题
那只好返回头看看CRC校验有没有问题了
结果还真发现了问题,恢复文件宽高,拿到flag。
学到的知识:完整分析png文件格式,类似的jpg文件,遇到题再分析吧