码迷,mamicode.com
首页 > 其他好文 > 详细

2016/12/3-问鼎杯线上赛1-1-Misc

时间:2016-12-04 09:43:08      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:type   像素   color   脚本   []   .sh   lin   main   save   

拿到这道题目的文件,是一个压缩包,解压之后,我们看到一个1.txt文件,打开之后全是一堆数字,然后看到255,0,144等内容,估计是图片的像素值。

技术分享

既然知道是像素值了,在CTF中,一般是8位比特的RGB图片,我们就使用Python写一个脚本来生成这个图片,Python使用的是PIL这个库。将所有的数据分为3个一组

我们可以知道3个一组的长度为95477, 写一个小程序,就可以知道是301*377的图片,然后分别对图片填充像素,就完成了图片的生成。

import os
from PIL import Image

def decode():
    count = 0
    #open the file, and get all the contents
    f = open(./1.txt, r)
    data = f.readlines()
    lis = []
    #print(type(data))
    for i in data:
        #将所有的数据以‘,‘来分割开
        d = i.split(,)
        s = []
        for j in d:
            s.append(j)
            count += 1
            if count == 3:
                lis.append(s)
                s = []
                count = 0
    #print(len(lis)) 95477 == 301 * 377
    last = []
    for i in lis:
        last.append((int(i[0]), int(i[1]), int(i[2])))

    c = Image.new("RGB",(x,y))
    count = 0
    for i in range (0,301):
        for j in range (0,377):
           c.putpixel([i,j],last[count])
           count += 1
     
    c.show()
    c.save("c.png")

if __name__ == __main__:
    decode()

好了,这个图片是一个二维码。

文件在这里:http://pan.baidu.com/s/1c1WC50k

2016/12/3-问鼎杯线上赛1-1-Misc

标签:type   像素   color   脚本   []   .sh   lin   main   save   

原文地址:http://www.cnblogs.com/binlmmhc/p/6130243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!