双色块
直到刚才我还一直以为标题是双色球。看到萌新在手动搞这个,还搞不出来。
虽然2345一直毁誉参半,不过好压和这个看图还是挺有用的。gif本来就是多帧图像合起来的幻灯片,点击“保存所有帧”可以直接切分成单幅,共576张。
用下面的脚本生成一个列表,当然最后的输入可以优化一下,每24个输出一次。python输出列表有一个优势就是会自动添加逗号,这样就容易写成CSV文件,然后再Excel里使用条件格式将等于1或者等于0的涂黑。显然这并不是条形码。但发现每8个一组的情况下,第一位都是相同的。联想ASCII的二进制编码,如果是可显示字符的话,第一位就是0,那么就是绿色为0,紫色为1。改下输出,用chr(int('0???????',2))转化为字符,看着可能是base64或者DES。前者不对,如果是后者,密码在哪?
binwalk分析之后发现其实是双图拼接,后半段还有一个png,取出来就可以看到密码。
1 """ 2 python3 code 3 """ 4 5 #!/usr/bin/env python 6 # -*- coding: utf-8 -*- 7 # @Author : B1u3Buf4(https://www.cnblogs.com/xiao3c/) 8 9 10 from PIL import Image 11 from pathlib import Path 12 13 14 p = Path('.') 15 tmp = [0 for i in range(576)] 16 for i in p.iterdir(): 17 if i.name[-3:] != '.py': 18 im = Image.open(i.name) 19 im = im.convert('RGBA') 20 cur = int(i.name[i.name.find('_')+1:i.name.find('.')]) - 1 21 #print(cur) 22 w, h = im.size 23 st = im.load() 24 flag = False 25 for x in range(w): 26 for y in range(h): 27 if st[x,y][1] > 250 and (st[x,y][0] < 10 and st[x,y][2] < 10): 28 if flag == False: 29 flag=True 30 tmp[cur] = 0 31 continue 32 if st[x,y][1] < 10 and (st[x,y][0] > 250 and st[x,y][2] > 250): 33 if flag == False: 34 flag=True 35 tmp[cur] = 1 36 continue 37 print(tmp)