說下網鼎杯第四場的雙色塊


雙色塊

直到剛才我還一直以為標題是雙色球。看到萌新在手動搞這個,還搞不出來。

雖然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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM