题目
一张图片,500*420的。
解题思路
- 看看二进制,放到Stegsolve里看看图层和LSB,都没有什么异常
- 用pngcheck检查一下图片, 发现crc报错了,那这应该是IHDR隐写了。一般来说是chunk_data错了,因为crc错了的话,如果你能看到图片那改crc也没什么变化。而改chunk_data可以更改图片的显示大小,把隐藏的一部分显示出来。
而对于此题应该是改chunk_data里的图片大小,试试改成500*500的,发现flag出现了,而且crc也对了,那说明是改对了。否则根据crc爆破chunk_data很耗时
方法
这个图片不是该题的图,只是用来说明文件结构.pngcrc的计算方法是
crc32(chunk_type+chunk_data)
-
png格式主要由六大块组成:文件头、IHDR块、PLTE块、tRNS块、IDAT块、文件尾
文件头一般是 8950 4E47 0D0A 1A0A
而本题提示中的IHDR块是png中用来描述图片的基本信息,格式是4字节Chunk_Length、4字节Chunk_Type、13字节Chunk_Data、4字节Chunk_CRC -
Chunk_Length:内容一般是13,决定了Chunk_Data的大小
-
Chunk_Type:内容为49484452,代表"IHDR"
-
Chunk_Data:4字节Width,4字节Hegiht,1字节BitDepth,
1字节ColorType,1字节CompressionMethod,1字节FilterMethod,1字节InterlaceMethod -
Chunk_CRC:把Chunk_Type和Chunk_Data合起来进行CRC校验
直接用winhex 改图片的高为01F4
然后保存就行了,顺便把更改的数据校验一下看和后边的crc的值是否相同
网友评论