1. 程式人生 > 其它 >MISC 2022/4/21 刷題記錄-千字文

MISC 2022/4/21 刷題記錄-千字文

1.千字文

得到名為png的無型別檔案,010 Editor檢視,png,改字尾,得到二維碼

QR掃描,得到一句話“這裡只有二維碼”

思路不對,binwalk一下,發現有錯誤資訊

沒有有效資訊,扔進stegsolve中,發現了一張奇怪的圖片

聯想題目千字文,這就是要找的,與正常二維碼對比,發現此圖片就是由倒置二維碼拼接而成

#思路:將二維碼逐個裁剪出,然後批量掃描

1)stegsolve直接save as的有白邊,可以用指令碼裁剪一下,或者自己直接截圖(我是直接截的)

from PIL import Image
img=Image.open('solved.bmp')
box=(50,50,675,675)
im_crop=img.crop(box)
im_crop.save('1.bmp')

2)指令碼裁剪為25*25大小的二維碼

from PIL import Image
filename = '1.bmp'
img = Image.open(filename)
n=0
for i in range(25):
	for j in range(25):
    		region = img.crop((25 * j, 25 * i, 25 * (j + 1), 25 * (i + 1))).resize((500, 500), Image.ANTIALIAS)
      out='%d.png'%(n)
	    region.save(out)
    	n+=1

3)批量掃碼,利用方方格子的excel圖片處理-批量掃碼都可以

法一:方方格子:

http://www.ffcell.com/

下載Excel工具箱後安裝外掛及環境(自動安裝)即可在excel中找到圖片工具

法二:指令碼掃描

import pyzbar.pyzbar as pyzbar
from PIL import Image

for i in range(625):
	str_image = str(pyzbar.decode(Image.open('%d.png'%i))[0].data.decode())
	print(str_image)

需要注意的是,直接將得到的圖片們掃描的話會出現"IndexError: list index out of range"

這個錯誤有兩種,一:下標超過範圍,越界;二:所得值為空

切割後得到的圖片中有全黑的,即掃描值為空,所以需要刪除,

(記得刪除後改圖片名字),掃描後即得flag