CTFshow萌新赛-千字文
2021-04-09 08:26
标签:分割 tfs imp 图像 code port 运行 图片 def 打开靶机 下载完成后,为一张二维码图片 使用StegSolve 解出隐写图像 保存后使用PS或其他工具去除白边 然后使用脚本分割这个图像(25*25) 分割完成后使用pyzbar识别二维码信息,并输出 成功拿到flag 使用后输出很多信息,而且需要两个脚本 我把两个脚本进行了整合 运行情况 CTFshow萌新赛-千字文 标签:分割 tfs imp 图像 code port 运行 图片 def 原文地址:https://www.cnblogs.com/anweilx/p/12435895.htmlfrom PIL import Image
im = Image.open(‘solved.bmp‘)
id = 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(‘./1/%03d.png‘ % id)
id += 1
import pyzbar.pyzbar as pyzbar
for i in range(625):
# im = Image.open()
s = ‘./1/%03d.png‘ % i
print(pyzbar.decode(Image.open(s))[0].data.decode())
1 #! /usr/bin/env python3
2 # _*_ coding:utf-8 _*_
3 import pyzbar.pyzbar as pyzbar
4 from PIL import Image
5
6 def main():
7 fg()
8 print("图片分割已完成")
9 dq()
10
11 def fg():
12 #源文件名
13 im = Image.open(‘3.png‘)
14 id = 0
15 for i in range(0, 25):
16 for j in range(0, 25):
17 box = (25 * i, 25 * j, 25 * (i + 1), 25 * (j + 1))
18 #分割后存储路径和文件名
19 im.crop(box).resize((500, 500), Image.ANTIALIAS).save(‘./1/%03d.png‘ % id)
20 id += 1
21
22 def dq():
23 for i in range(625):
24 #分割后单个二维码图片路径
25 s = ‘./1/%03d.png‘ % i
26 str_image = str(pyzbar.decode(Image.open(s))[0].data.decode())
27 if "flag" in str_image:
28 print(str_image)
29
30 if __name__ == "__main__":
31 main()