CCS 2022 极客少年挑战赛 writeup

 

目录

题目一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,但考虑到屏幕实际/cpu0x0fff就差不多了
    for w in range(n):          #高和宽一起爆破
        width = bytearray(struct.pack('>i', w))     #q8字节,i4字节,h2字节
        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)

 

posted @ 2022-10-19 16:12  诗与娴  阅读(177)  评论(0)    收藏  举报