CCS 2022 极客少年挑战赛 writeup

2022-11-21,,,

目录

题目一DSDS

操作内容:

题目二 easy_re

操作内容:

flag值:

题目三 1+1=all


解题过程

题目一DSDS

操作内容:

开环境然后进入网址在网址后./目录

进入目录得到个文件

​编辑

放进winhex里查看

​编辑

然后查看文件得到flag

​编辑

题目二 easy_re

操作内容:

下载得到一个pyc文件

​编辑

在网站上反编译一下

​编辑

该题使用自己编写的脚本请详细写出,不允许截图

import base64

def encode(message):

    s = ""

    for i in message:

        x = ord(i) ^ 50

        x = x + 5

        s += chr(x)

    return base64.b64encode(s)

def decode(message):

    flag = ''

    s = str(base64.b64decode(message),'utf-8')

    for i in s:

        x = (ord(i)-5)^50

        flag += chr(x)

    print(flag)

correct = "WWNYWk5cWEZQckdQVlQ="

decode(correct)

       

# correct = "WWNYWk5cWEZQckdQVlQ="

# flag = ""

# print("Plz input flag:")

# flag = raw_input()

# if encode(flag) == correct:

#     print("you got it~")

# else:

#     print("wrong!")

C:\Python38\python.exe C:/Users/Administrator/Desktop/新建文件夹/yihou.py

flag{easy_pyc}

运行得到flag

flag值:

flag{easy_pyc}

题目三 1+1=all

操作内容

​编辑

一看就是01转二维码,利用网上的脚本可得到二维码

​编辑

for x in range (0,MAX):

        if(str[i] == '1'):

            pic.putpixel([x,y],(0, 0, 0))

        else:

            pic.putpixel([x,y],(255,255,255))

        i = i+1

pic.show()

pic.save("1.png")

点击flag2压缩包发现要密码

爆破密码得到pp8

​编辑

打开发现是一个黑色的图片

Winhex没有发现异常

爆破宽高试一下

脚本是网上的脚本

​编辑

爆破得到原始的宽高\x00\x00\x01\x90

​编辑

​编辑

得到第二张

然后用ps合并

​编辑

扫描

得到flag

flag{adca24b024aeaecc74ed901e2426486c}

import zlib

import struct

filename = 'flag2 .png'

with open(filename, 'rb') as f:

    all_b = f.read()

    crc32key = int(all_b[29:33].hex(),16)

    data = bytearray(all_b[12:29])

    n = 4095            #理论上0xffffffff,但考虑到屏幕实际/cpu,0x0fff就差不多了

    for w in range(n):          #高和宽一起爆破

        width = bytearray(struct.pack('>i', w))     #q为8字节,i为4字节,h为2字节

        for h in range(n):

            height = bytearray(struct.pack('>i', h))

            for x in range(4):

                data[x+4] = width[x]

                data[x+8] = height[x]

            crc32result = zlib.crc32(data)

            if crc32result == crc32key:

                print("宽为:",end="")

                print(width)

                print("高为:",end="")

                print(height)

                exit(0)

CCS 2022 极客少年挑战赛 writeup的相关教程结束。

《CCS 2022 极客少年挑战赛 writeup.doc》

下载本文的Word格式文档,以方便收藏与打印。