这个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)
本文系作者原创,若有错误恳请斧正,不胜感激。