很普通的数独的writeup

    大家好,这次我为大家带来的是攻防世界misc部分很普通的数独的writeup。
    先下载附件,发现是一个解压包,进行解压。看到文件夹里有一大堆数独图片,个人认为如果将数独解出来没有什么意义,既耗时又没有价值。于是我们再仔细观察一下这些数独图片,注意到有三张图片有些蹊跷。

很普通的数独的writeup_第1张图片

很普通的数独的writeup_第2张图片

很普通的数独的writeup_第3张图片

    仔细观察,如果把有数字的方格涂黑,上面三张图片就是二维码的三个定位码,再注意到图片数量为25张,是5的平方,所以,这25张图片组合起来就是一张二维码。于是上python脚本。

from PIL import Image
path = input("输入图片路径")
img0 = Image.new("RGBA", (180, 180), "white")
box0 = (3, 3, 199, 199)
for i in range(45):
    for j in range(45):
        pngnum = i // 9 * 5 + j // 9 + 1
        img1 = Image.open(path + "\\" + str(pngnum) + ".png")
        box = ((j % 9) * 22 + 11, (i % 9) * 22 + 11, (j % 9) * 22 + 18, (i % 9) * 22 + 18)
        img2 = img1.crop(box0).crop(box).load()
        sign = False
        for x in range(7):
            for y in range(7):
                if img2[x, y] != (255, 255, 255, 255):
                    sign = True
                    break
            if sign:
                break
        if sign:
            for x in range(4):
                for y in range(4):
                    img0.putpixel([i * 4 + x, j * 4 + y], (0, 0, 0))
img0.save(path + "\\" + "result.png")

    运行后得到二维码。

很普通的数独的writeup_第4张图片

    定睛一看,貌似定位码的位置搞错了,于是重新调整第1张、第5张和第21张图片的位置,运行脚本得到正确的二维码。

很普通的数独的writeup_第5张图片

    扫描二维码。

很普通的数独的writeup_第6张图片

    得到一串字符串:Vm0xd1NtUXlWa1pPVldoVFlUSlNjRlJVVGtOamJGWnlWMjFHVlUxV1ZqTldNakZIWVcxS1IxTnNhRmhoTVZweVdWUkdXbVZHWkhOWGJGcHBWa1paZWxaclpEUmhNVXBYVW14V2FHVnFRVGs9。猜测是base64加密,于是进行解密。

很普通的数独的writeup_第7张图片

    在解密7次之后,得到flag:y0ud1any1s1。

你可能感兴趣的:(攻防世界MISC高手进阶区)