0和1的故事---bugku

看到题目说0和1,我们可以想到二进制,或者是摩斯,或者是黑白

数了一下,是26*26的矩阵,这需要我们想到二维码,二维码有很多版本,我们需要了解一些二维码的知识,二维码有定位标志和内容,具体可以看一个视频:
https://www.bilibili.com/video/BV1Y54y1D7cT?from=search&seid=2852279662552023289(个人很喜欢这个up主)

之后我们使用脚本来还原二维码:

from PIL import Image          //必须要导入的包
MAX = 25                       //0-25=26,这里代表下标,不要像我一开始写26报错
pic = Image.new("RGB",(MAX, MAX))            //输出图片
str = "0000000001110010000000000000000000001111010000000000000000011100010000000000000000010111100000000000000000001010101000000000000000000011000101000000000000000010101010100000000000000000100000110000000011000111011101101000110000001000010110010010010100010011110100001110111001100111101001010110010010011000001001100001001101000111100011111101110010100010110111110011011111101111000110110010010101101100100011110011111111111011100000000101100011000101000000000010010100101010001000000001010101010001100100000000001001111111100100000000000011001011110111000000000100110010010000100000000110000110110110010000000011010000101110101"
i=0
for y in range (0,MAX):
    for x in range (0,MAX):
        if(str[i] == '1'):
            pic.putpixel([x,y],(0, 0, 0))              //根据xy代表每一个像素点,000代表黑色
        else:
            pic.putpixel([x,y],(255,255,255))          //255代表白色
        i = i+1
pic.show()
pic.save("flag.png")

之后我们输出得到一张图片

我们看到图片缺少三个定位点,这是用于不管你从什么方向扫,都能正确扫描出来
于是我们添加三个定位点

扫描得到flag

posted @ 2021-03-22 19:03  网抑云黑胶SVIP用户  阅读(320)  评论(0编辑  收藏  举报