bugku_ctf Misc 隐写

题目

一张图片,500*420的。

解题思路

  • 看看二进制,放到Stegsolve里看看图层和LSB,都没有什么异常
  • 用pngcheck检查一下图片, 发现crc报错了,那这应该是IHDR隐写了。一般来说是chunk_data错了,因为crc错了的话,如果你能看到图片那改crc也没什么变化。而改chunk_data可以更改图片的显示大小,把隐藏的一部分显示出来。
    而对于此题应该是改chunk_data里的图片大小,试试改成500*500的,发现flag出现了,而且crc也对了,那说明是改对了。否则根据crc爆破chunk_data很耗时

方法

bugku_ctf Misc 隐写_第1张图片
这个图片不是该题的图,只是用来说明文件结构.png

crc的计算方法是 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的值是否相同

你可能感兴趣的:(bugku_ctf Misc 隐写)