CTF-Misc-gif-WriteUp

文章目录

  • gif
    • 题目分析
    • 总结

gif

CTF-Misc-gif-WriteUp_第1张图片

题目分析

打开gif文件夹,有很多张黑白图片
CTF-Misc-gif-WriteUp_第2张图片
用winhex查看这些图片,没有发现可利用信息,于是想到黑白可能代表二进制零和一。我们将白色视为0黑色视为1或者反过来尝试一遍。一共有104张图片正好是8的倍数,可以转为8个一对二进制,再转化为ASCII码。由于图片较多,我们写一个python脚本。这里使用Python图像库PIL(Python Image Library),是python的第三方图像处理库。

from PIL import Image
result = ""
for i in range(104):
    img = Image.open(f"C:\\Users\\Doby\\Desktop\\dbbc971bf4da461fb8939ed8fc9c4c9d\\gif\\{i}.jpg")
    im_RGB = img.convert("RGB") # 将图片转换为RGB模式
    r,g,b =im_RGB.getpixel((1,1)) #获得x,y坐标的rgb值
    print(r,g,b)# 这题中白色图片rgb值:255,255,255 黑色图片rgb值:12,12,0
    if r !=255: #255是白色
        result +="1"
    else:
        result +="0"
#将二进制转换为ascii码
for i in range(0,len(result),8):
    byte = result[i:i+8]
    print(chr(int(byte,2)),end="")
"""
运行结果:
flag{FuN_giF}
"""

总结

看到很多黑白图片,想到他们对应着二进制的0和1,会写图像图像相关的脚本。

你可能感兴趣的:(ctf解题)