题目链接: 隐写
思路:
图片可以正常查看,用工具010Editor打开查看,文件头和文件尾均正常,也没有隐藏信息。观察其他信息:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
89 | 50 | 4E | 47 | 0D | 0A | 1A | 0A | 00 | 00 | 00 | 0D | 49 | 48 | 44 | 52 |
00 | 00 | 01 | F4 | 00 | 00 | 01 | A4 | 08 | 06 | 00 | 00 | 00 | CB | D6 | DF |
74 | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
89 50 4E 47 0D 0A 1A 0A
:表示文件类型为PNG
00 00 00 0D
:IHDR头数据库长度为13
49 48 44 52
:文件头数据块标识,即IDCH,固定为ASCII码的IHDR
00 00 01 F4
:图片宽度(以像素为单位)
00 00 01 A4
:图片高度(以像素为单位)
08
:色深
06
:颜色类型
00
:压缩方法,固定为0
00
:压缩方法,固定为0
00
:非隔行扫描
CB D6 DF 74
:以下内容的CRC32检验码
49 48 44 52 00 00 01 F4 00 00 01 A4 08 06 00 00 00
经过计算,上面内容CRC32校验码为C758D77D
,与实际的校验码CBD6DF74
不相等。猜测是图片的宽高被修改,导致部分内容被隐写。将图片的高度修改为与高度一样,计算得到的CRC32校验码与实际校验码相等,保存图片即可看到隐写的flag。
更完整的做法应该是利用CRC校验码对图片的宽高进行爆破,直到获得正确的宽高,但是我不会哈哈哈。