一.萌新赛
1.千字文
首先是一张二维码,但是扫后发现没什么东西,再放入stegsolve中发现了:
是好多张二维码组成的一张位图,然后想到要把它分离开,一个个扫一下,写脚本:
import pyzbar.pyzbar as pyzbar
from PIL import Image
def fg():
im = Image.open('solved.bmp')
num = 0
for i in range(0, 25):
for j in range(0, 25):
box = (25 * i, 25 * j, 25 * (i + 1), 25 * (j + 1))
im.crop(box).resize((500, 500), Image.ANTIALIAS).save('./qianziwen/%03d.png' % num)
num += 1
def dq():
for i in range(624):
s = './qianziwen/%03d.png' % i
if len(pyzbar.decode(Image.open(s))) > 0:
str_image = str(pyzbar.decode(Image.open(s))[0].data.decode())
print(str_image)
if 'flag' in str_image:
return
def main():
fg()
print("图片分割已完成")
dq()
if __name__ == "__main__":
main()
然后flag就出来了
我刚开始做的时候,真的是各种问题都来了哈哈哈,不过还好最后问了问学长
要注意在目录中新建一个qianziwen目录,我刚开始弄了个图片;还有,其实没必要先去白边,哈哈哈,因为它的白边和每个小二维码的宽度是一样的
还学习了一个函数crop,截取函数,后面跟四个参数,其实结合这一题就很好理解了