轉載請註明出處:http://www.cnblogs.com/WangAoBo/p/7552266.htmlhtml
Jarivs OJ的一道misc,記錄這道題的Writeup主要是想記錄解題的腳本python
文件下載後是純數據,binwalk發現爲兩段zlib壓縮後的數據,其中第2段爲default compression,這是信息1;strings查看字符串,發現IHDR, RGB, IDAT等和圖像相關的字符,這是信息2;spa
分理出class10中的壓縮數據3d
binwalk -e class10code
查看分離後的數據htm
由信息1,F4289.zlib爲default compression的zlib數據,對其進行解壓縮(固然binwalk厲害得很,binwalk -e分離後的F4289已是解壓縮過得數據了)blog
如上,解壓後爲29 × 29位的01字符串,再結合信息2,設想生成一張29*29的方形圖片,像素點與字符串對應,始0和1對應的像素點分別爲不一樣黑白兩種顏色,代碼以下圖片
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 __Auther__ = 'M4x' 4 5 from PIL import Image 6 7 SIZE = 29 8 img = Image.new("RGB", (SIZE, SIZE)) 9 with open("./F4289") as f: 10 str = f.read() 11 # print str 12 13 i = 0 14 for y in xrange(SIZE): 15 for x in xrange(SIZE): 16 if str[i] == '0': 17 img.putpixel([x, y], (0, 0, 0)) 18 else: 19 img.putpixel([x, y], (255, 255, 255)) 20 i = i + 1 21 # img.show() 22 img.save("img.png")
生成了一個二維碼,掃碼便可拿到flagutf-8