攻防世界-gif

1.下载后解压得到104张图片

 

 2.分析图片类型,不是百分百确定是jpg

 

 3.分析文件头 FF D8 FF 确实是jpg

 

 4.由于每张图片大小也相同,没有一个一个分析的必要,只是颜色和命名不同,命名是有顺序的,并且颜色只有黑白两个,可能是密码学,不同颜色表示不同代码,根据顺序排列,只有两种编码,难道是01的二进制???

转化为二进制

python3脚本:

 

 5.得到结果  flag{FuN_giF}

 

附:脚本

 1 flag_dic = ""
 2  
 3 white = open(r"D:\攻防世界\Misc\gif\gif\0.jpg","rb").read() 
 4 black = open(r"D:\攻防世界\Misc\gif\gif\1.jpg","rb").read()
 5 #上面两句用于为下面的图片识别做个实例,定义什么图片是白色,什么是黑色
 6  
 7 for i in range(104):
 8     with open(r"D:\攻防世界\Misc\gif\gif\%d.jpg"%i,"rb") as f:
 9         if f.read() == white:
10             flag_dic += "0"
11         else:
12             flag_dic += "1"
13 #上面循环语句用于识别D:\攻防世界\Misc\gif\gif\%d.jpg路径下的104张图片的颜色,并给白色附值为0,黑色赋值为1
14 
15 #print (flag_dic)
16 #用于测试打印识别后的二进制
17 
18 flag = ""
19      
20 for i in range(len(flag_dic)//8):
21     flag += chr(int(flag_dic[i*8:(i+1)*8],2))
22      
23 print(flag)
24 #将二进制转化为字符串

 

posted @ 2019-11-26 18:05  X38072  阅读(2710)  评论(2)    收藏  举报