CTF-Misc-gif-WriteUp

文章目录

gif

在这里插入图片描述

题目分析

打开gif文件夹,有很多张黑白图片
在这里插入图片描述
用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,二进制可以使用ASCII码转换为字符,图片很多,写脚本可以提高我们的效率。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值