2021西湖论剑

2021西湖论剑

跟队打。第6。签到摸鱼。等官方wp复习那个机器学习的misc。

MISC

签到

YUSA的小秘密

打开是个图片,根据提示有可能是lsb隐写,用Stegsolve打开,在red0发现flag字样。但有几位模糊了。

image-20211120140222589

想到了之前byte2020的一个[题](Docs (feishu.cn)),三个像素其实可以使用三个通道来表示的。常见的是rgb,题目描述说不止rgb,这里有个通道是YCrCb。我们可以使用cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb)来直接对图片数据进行色彩空间转换。然后对三个通道的数据根据奇偶进行二值化处理。得到高清图像

import cv2
img = cv2.imread("./12.png")
img_YCrCb = cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb)
a,b,c = cv2.split(img_YCrCb)
cv2.imwrite('flag.png',(a%2)*255)

image-20211120140710866

Yusa的秘密

whoami的密码是他的windows user密码 YusaYusa520
有个key.zip 密码在通讯录 这是你会用到的key,可以用它打开组织给你的工具。工具命名依照了传统规则。key:820ac92b9f58142bbbc27ca295f1cf48
在系统便签里有个密码 是exp的密码 世界没了心跳

仿照exp写个逆操作

from PIL import Image
import struct
pic = Image.open('key.bmp')
fp = open('flag1', 'wb')
fs = open('Who_am_I', 'rb')

a, b = pic.size
list1 = []
for y in range(b):
    for x in range(a):
        pixel = pic.getpixel((x, y))
        list1.extend([pixel[1], pixel[0], pixel[2], pixel[2], pixel[1], pixel[0]])

data = fs.read()
for i in range(0, len(data)):
    fp.write(struct.pack('B', data[i] ^ list1[i % a*b*6]))
fp.close()
fs.close()

得到一个gif文件。分解gif得到flag

扫描二维码关注公众号,回复: 13537272 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_41636200/article/details/121786100
今日推荐