神人比赛

(在我们网安圈,打pycc的人是不能上桌吃饭的)

Misc

书法大师

给了一个jpg文件,放到010editor发现文件末藏了个压缩包

密码在图片的属性里

市大 正自 不摔 切切 石乙 个土 走工 远国 巧早 年赛 正厂 小中 边年 虫旗 竹片 作乙 早小 不乐 没〇 远站 老自 边一 小罪 卫数
53 56 4e 44 51 33 73 78 56 6e 52 34 56 6e 64 71 63 45 70 7a 66 51 3d 3d

把笔画记下 连起来是个base64加密

ISCC{1VtxVwjpJs}

反方向的钟

clock没什么用

txt文件拿010打开发现零宽字符

解密网站https://yuanfux.github.io/zero-width-web/

出了一个iscc2025qalp

由图片时钟从4:05倒回8:00提示

尝试base64解密后xor iscc2025qalp

flag{YlrolODLZUDB}

Web

战胜卞相壹

/robots.txt

F12注释层有提示,根据提示画图

抽象的2=0

进入/f12g.txt,找到flag

还要把flag里的0改成2,太神人了

Reverse

SP

标准upx脱壳,脱壳后

在比较处打断点,动调发现是明文比较(他甚至不愿意加个密

找字符串有带关键字ISCC的就是flag

冗余的代码

最后是个迷宫

正确的指令序列应该是: 2, 2, 2, 4, 4, 1, 1, 4, 4, 2, 2, 2

转化为0x02020204, 0x04010104, 0x4020202

然后动调看逻辑就好了

就是异或再进行XXTEA解密

exp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from ctypes import c_uint32

def encrypt(v, n, k):
rounds = 6 + int(52 / n)
s = c_uint32(0)
z = v[n - 1].value
while rounds > 0:
s.value += 0x9E3779B9
e = (s.value >> 2) & 3
p = 0
while p < n - 1:
y = v[p + 1].value
v[p].value += (((z >> 5 ^ y << 2) + (y >> 3 ^ z << 4)) ^ ((s.value ^ y) + (k[(p & 3) ^ e] ^ z)))
z = v[p].value
p += 1
y = v[0].value
v[n - 1].value += (((z >> 5 ^ y << 2) + (y >> 3 ^ z << 4)) ^ ((s.value ^ y) + (k[(p & 3) ^ e] ^ z)))
z = v[n - 1].value
rounds -= 1

a = [0x02020204, 0x04010104, 0x4020202]

key = "E062A0ACA0E105E5563A12DFB687B6FC"

key = [int(key[i:i+8], 16) for i in range(0, len(key), 8)]

key.reverse()

v = [c_uint32(x) for x in a]

encrypt(v, len(v), key)

c = [x.value for x in v]

d = []
for value in c:
d.append((value >> 24) & 0xFF)
d.append((value >> 16) & 0xFF)
d.append((value >> 8) & 0xFF)
d.append(value & 0xFF)

res = ""
for n in range(12):
d[n] ^= n + 10
res += f"{d[n]:02x}"

print("ISCC{"+ res+ "}")