雙色塊
直到剛才我還一直以為標題是雙色球。看到萌新在手動搞這個,還搞不出來。
雖然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)