拿到手一个打不开的PNG文件,查看其十六位文件头及文件尾均为正确
截屏2022-03-09 16.38.23.png

使用binwalk查看

使用binwalk查看并没有隐藏文件
截屏2022-03-09 16.41.00.png

使用Strgsolve查看

使用Strgsolve查看可以看出半个大白
截屏2022-03-09 16.42.37.png
百度得知这属于CRC32错误
需要更改图片的宽或高

使用大佬的脚本进行计算

  1. #coding=utf-8
  2. import os
  3. import binascii
  4. import struct
  5. misc = open("dabai.png","rb").read()
  6. for i in range(1024):
  7. data = misc[12:20] +struct.pack('>i',i)+ misc[24:29]
  8. crc32 = binascii.crc32(data) & 0xffffffff
  9. if crc32 == 0x6d7c7135:
  10. print i

得出正确的高为479,转换成十六进制为01 DF

打开010Editor进行修改

截屏2022-03-09 16.46.31.png

图片成功修复,得到flag

截屏2022-03-09 16.47.14.png
flag{He1l0_d4_ba1}