小白小黑

把题下下来缩小就能发现是二维码,再根据提示发现01239代表白色剩下的代表黑色

from PIL import Image,ImageDraw
width = 256
height = 256
image=Image.new('RGB',(width,height),(0,0,0))
draw = ImageDraw.Draw(image)
with open('e:\\Desktop\\放题\\flag.txt',"r") as f:
    h=1
    for i in f:
        w=1
        i = i.replace(' ',"").replace("\n","")
        for j in i:
            if(j=='0'or j=='1'or j=='2'or j=='3'or j=='9'):
                draw.point((w,h),fill=(255,255,255))
                w=w+1
            else:
                w=w+1
        h=h+1
image.save('code.png', 'png')
print("ok")

spalshes

spalshes 中文有散点的意思,又发现三个一组可能是散点图

import matplotlib.pyplot as plt
lis =[1,2.75,1,1,2.5,1,1,2.25,1,1,1.75,1,1,2,1,1,3,1,1.5,3,1,2,3,1,2,2.75,1,2,2.5,1,2,2.25,1,2,2,1,2,1.75,1,2,1.5,1,1,2.25,1,1.5,2.25,1,1,1.5,1,1.5,1.5,1,4,2.75,1,4,2.5,1,3,3,1,3.5,3,1,4,3,1,3.5,2.25,1,4,2.25,1,4,2,1,4,1.75,1,4,1.5,1,3,1.5,1,3.5,1.5,1,3,2.25,1,3,2.5,1,3,2.75,1,5,3,1,5.5,3,1,6,3,1,6,2.25,1,6,2,1,6,1.75,1,6,1.5,1,5.5,1.5,1,5,1.5,1,5,2.25,1,5.5,2.25,1,5,2.5,1,5,2.75,1,7,3,1,7.5,3,1,8,3,1,8,2.5,1,8,2,1,8,1.5,1,8,2.75,1,8,2.25,1,8,1.75,1,9,3,1,9.5,3,1,10,3,1,10,2.75,1,10,2.5,1,10,2.25,1,9.5,2.25,1,9,2.25,1,9,1.5,1,9.5,1.5,1,10,1.5,1,10,2,1,10,1.75,1,11.5,3,1,12,3,1,11,3,1,12,2.25,1,12,2,1,12,1.75,1,12,1.5,1,11.5,1.5,1,11,1.5,1,11,1.75,1,11,2,1,11,2.25,1,11,2.5,1,11,2.75,1,11.5,2.25,1]
x = lis[0::3]
y = lis[1::3]
z = lis[2::3]
fig = plt.figure()
ax = plt.figure().add_subplot(111, projection = '3d')
ax.set_title('Spalshes')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
ax.scatter(x,y,z,c = 'r',marker = '.')
plt.legend('x1')
plt.show()
print()

镜流

图片像素提取+lsb隐写

图片像素提取脚本


import os
import re
import cv2
import argparse
import itertools
import numpy as np

# python39.exe .\图片嵌套隐写.py -f 1new.png -p 0x0+3830x2150 -n 10x10
parser = argparse.ArgumentParser()
parser.add_argument('-f', type=str, default=None, required=True,
                    help='输入文件名称')
parser.add_argument('-p', type=str, default=None, required=True,
                    help='输入左上顶点和右下顶点坐标 (如:220x344+3520x2150)')
parser.add_argument('-n', type=str, default=None, required=True,
                    help='输入宽度间隔和高度间隔 (如:44x86)')
args  = parser.parse_args()

if __name__ == '__main__':
    if re.search(r"^\d{1,}x\d{1,}\+\d{1,}x\d{1,}$", args.p) and re.search(r"^\d{1,}x\d{1,}$", args.n):
        x1, y1 = map(lambda x: int(x), args.p.split("+")[0].split("x"))
        x2, y2 = map(lambda x: int(x), args.p.split("+")[1].split("x"))
        width, height = map(lambda x: int(x), args.n.split("x"))

        img_path = os.path.abspath(args.f)
        file_name = img_path.split("\\")[-1]

        img = cv2.imread(img_path, cv2.IMREAD_COLOR)
        row, col = img.shape[:2]

        r, c = len(range(y1, y2 + 1, height)), len(range(x1, x2 + 1, width))
        new_img = np.zeros(shape=(r, c, 3))
        for y, x in itertools.product(range(r), range(c)):
            new_img[y, x] = img[y1 + y * height, x1 + x * width]

        cv2.imwrite(f"_{file_name}", new_img)
        print("已保存到运行目录中...")
    else:
        print("参数-p或参数-n, 输入错误!")

stream

SQL盲注,套神工具一把梭

Daddy_Was_A_Thief

直接解压后搜索发现flag.zip
打开zip,查看注释发现报错,但是报错是错的,百度可知正确答案是SyntaxError
即为压缩包解压密码


一个好奇的人