2021祥云杯 Misc鸣雏恋

鸣雏恋 WP

解压后得到 鸣雏恋.docx,使用010Editor打开发现前缀为zip文件

image

修改文件后缀解压后得到如图的文件夹

image

在_rels文件夹下获得key.txt文件,使用010Editor打开,发现有大量空白字符,便想到宽字符隐写

image

在网站上http://330k.github.io/misc_tools/unicode_steganography.html进行处理

image

得到解压密码 Because I like naruto best

解压love.zip后得到如下的文件

image

根据压缩包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码下发现前缀如下

image

将转换完的base64码提取出来,在网站https://tool.jisuapi.com/base642pic.html下进行base64到图片的转换,得到flag图片

image

posted @ 2021-08-24 20:02  lizhi334  阅读(297)  评论(0编辑  收藏  举报