题目
杂项8
小明看完图片老脸一红,心想,我女朋友能有这么瘦就好了。
https://www.ctf.show/files/fef308f2546c7b4286c0837e3ee2afb8/flag.rar?token=eyJ1c2VyX2lkIjoxNzM0MywidGVhbV9pZCI6bnVsbCwiZmlsZV9pZCI6NDd9.YvIBcA.eZ-mFsDKdUs1mULWn8yJe_GSnT0
过程
-
确定图片隐写思路
猜测是图片的长宽被改变 -
使用十六进制工具查看图片:
用 winhex 工具打开图片
3.确定图片正确宽高
使用脚本,通过图片的 crc 计算正确宽高
图片crc地址:1D-20
脚本
import os
import binascii
import struct
import sys
if __name__ == '__main__':
name = "杂项8/flag.png" #图片路径
crc = 0x91918666 #图片当前CRC
crcbp = open(name, "rb").read()
for i in range(5000):
for j in range(5000):
data = crcbp[12:16] + \
struct.pack('>i', i)+struct.pack('>i', j)+crcbp[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if(crc32 == crc):
print(i, j)
print('hex:', hex(i), hex(j))
break
输出
3.修改图片长宽
图片长地址: 10-13
图片宽地址: 14-17
修改过程:
Edit->Modify Data->Add
另存为新文件
4.确定flag
打开新文件
flag{you_are_very_well}
总结
遇到图片不全、被压缩的情况猜测是长宽被改写,用winhex修改回正确尺寸