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