jlctf

热身赛

re2

1745376542558-f0a55de5-200a-4991-b3da-8737aec2b777.png

1745376532862-6c11e3ef-6d9f-459a-ab70-3a75798b5699.png

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
import numpy as np

# 定义 xmmword_1400032F8 和 xmmword_1400032E8
xmmword_1400032F8 = np.array([0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00], dtype=np.uint8)
xmmword_1400032E8 = np.array([0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10], dtype=np.uint8)

# 定义加密后的字符串
encrypted = "cge87k?9<>?@=pss393=>;8@:Cp@DAuH"

# 将加密后的字符串转换为字节数组
encrypted_bytes = np.frombuffer(encrypted.encode(), dtype=np.uint8)

# 初始化空的解密结果
decrypted = bytearray()

# 进行解密操作
for i in range(0, len(encrypted_bytes), 16):
block = encrypted_bytes[i:i+16]
# 逆向 _mm_add_epi8
block = np.subtract(block, xmmword_1400032E8, dtype=np.uint8)
# 逆向 _mm_shuffle_epi8
inverse_shuffle = np.argsort(xmmword_1400032F8)
block = block[inverse_shuffle]
decrypted.extend(block)

# 将解密结果转换为字符串
flag = decrypted.decode()

print(f"Flag: flag{{{flag}}}")

更新: 2025-04-23 10:50:17
原文: https://www.yuque.com/chaye-apqbl/vsc85q/unksirzaog0qx54y


http://example.com/2026/01/19/WP/2025/jlctf/
Author
chaye
Posted on
January 19, 2026
Licensed under