知识点:文件修复,宽高修改
看题目提示,应该是文件头的问题,010打开看看
png文件头,89504e47
然后再改个后缀1.png,这明显缺了个头,改高度呗,crc爆破一下
import binascii
import struct
crcbp = open("./1.png", "rb").read() #打开图片
crc32frombp = int(crcbp[29:33].hex(),16) #读取图片中的CRC校验值
print(crc32frombp)
for i in range(4000): #宽度1-4000进行枚举
for j in range(4000): #高度1-4000进行枚举
data = crcbp[12:16] + \
struct.pack('>i', i)+struct.pack('>i', j)+crcbp[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
#print(crc32)
if(crc32 == crc32frombp): #计算当图片大小为i:j时的CRC校验值,与图片中的CRC比较,当相同,则图片大小已经确定
print(i, j)
print('hex:', hex(i), hex(j))
exit(0)
左边宽度,右边高度,下面那个文件夹放图片,要不然找不到,或者自己改改代码路径
保存一下,翻转一下得到咯
FSCTF{xiaojia_xiaohe}