其他分享
首页 > 其他分享> > 2021西湖论剑

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

标签:fp,img,西湖,cv2,论剑,密码,2021,key,pixel
来源: https://blog.csdn.net/qq_41636200/article/details/121786100