2021祥云杯 Misc鸣雏恋
鸣雏恋 WP
解压后得到 鸣雏恋.docx,使用010Editor打开发现前缀为zip文件
修改文件后缀解压后得到如图的文件夹
在_rels文件夹下获得key.txt文件,使用010Editor打开,发现有大量空白字符,便想到宽字符隐写
在网站上http://330k.github.io/misc_tools/unicode_steganography.html进行处理
得到解压密码 Because I like naruto best
解压love.zip后得到如下的文件
根据压缩包out和图片递增顺序,猜测是由二维码等大量信息转换为图片格式,编程Python代码将雏田看做0,鸣人看做1,依次遍历转化为01串,以txt形式存储
# 遍历代码
import os
import csv
import numpy
import pandas as pd
from PIL import Image
limit = 360
def trans_data_to_pair(data, index): # 将一维数组data 切分成index大小的二维数组
contents = [
data[i:i + index] for i in range(0, len(data), index)
]
while len(contents[-1]) < limit:
contents[-1].append(0)
#print(len(contents))
return contents
def detech_image(image_path):
tmp = []
my_txt = ""
chutian = Image.open(os.path.join(image_path, "0.png"))
mingren = Image.open(os.path.join(image_path, "1.png"))
for root, dirs, files in os.walk(image_path):
files.sort(key = lambda x:int(x[:-4])) # 从0遍历到末尾的顺序 不要删这个!!!
for file in files:
image = Image.open(os.path.join(root, file))
if (image.size == chutian.size): # 如果是雏田 那么这个位置是0
tmp.append(255)
my_txt += "0"
else: # 如果是鸣人这个位置是1
tmp.append(0)
my_txt += "1"
with open("my.txt", "w+") as f:
f.write(my_txt)
# QRcode = trans_data_to_pair(tmp, limit)
# im = Image.fromarray(numpy.asarray(QRcode)).convert("L")
# im.save('QRcode.png')
if __name__ == "__main__":
detech_image(r"C:\Users\22176\Desktop\祥云杯\鸣雏恋_2dad763070b79f50c4635a906359909a\鸣雏恋\_rels\out")
#draw_QRCode()
将二进制尝试转换其他编码,在ascii码下发现前缀如下
将转换完的base64码提取出来,在网站https://tool.jisuapi.com/base642pic.html下进行base64到图片的转换,得到flag图片
Think twice~ Code once!