攻防世界 misc 新手区 gif

这个gif蛮不一般的,一打开发现一堆黑白纯色图片,立马想到是不是二进制。

先用Stegsolve打开看看确定图片里面没藏什么东西,然后图片详细信息里面也啥都没有,用Photoshop打开也只有一个图层。

嗯,那就是二进制了!

基本思路大概是,把黑白图片转换成二进制,再8位对应一个ASCII码。

上代码!

white = open('./gif/0.jpg', 'rb').read()#得到白色图片的二进制码
black = open('./gif/1.jpg', 'rb').read()#得到黑色图片的二进制码
#注意这个文件应该先拷贝一份放在工程文件夹,要不然就要用真实地址

#同时还要注意,地址栏的是反斜杠 \ ,在python中应该手动换成 / ,或者使用replace方法

#还有还有,这个open后面的打开方式要选rb,即read & binary。之所以用二进制的方式因为我们要打开的不是文本文件,而是图片类型的。

#最后补充一下:“~”表示Web 应用程序根目录,“/”也是表示根目录,“../”表示当前目录的上一级目录,“./”表示当前目录

s = ''
for i in range(104):
    f = open('./gif/%d.jpg' % i, 'rb').read()
    if (f == white):
        s += '0'
    else:
        s += '1'
print(s)
flag = ''
lenth = len(s)//8#分为8个一组
for i in range(lenth):
    flag += chr(int(s[i*8:(i+1)*8], 2))#int()函数的语法:int(数字,n进制),此处n=2
print(flag)

本文系作者原创,若有错误恳请斧正,不胜感激。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值