[SHCTF 2024]遮遮掩掩?CCRC!
[SHCTF 2024]遮遮掩掩?CCRC!
题目描述
我说今天必须爆破出来, 熊说:不可
ZipCrypto加密,并且文件内容大小只有3byte,结合题目考虑CRC爆破
import zlib
flag=''
crc_list = [0x42582aaa, 0x8454f318, 0x8c88cc6a, 0x7eb2adde, 0x78776df, 0x21509dfb, 0xc975144, 0xf51f79ac, 0xf262197e, 0x8b5919f7, 0x8b5919f7, 0xbce853c2, 0x11d0d7ba, 0x5c66f4cd, 0x38457732, 0xcdff1d1b, 0xcbf2ddf2, 0x7af934d6, 0x21509dfb, 0x5bf57dc6, 0xd617d273, 0xf9d901d6, 0x211fdb00, 0xcbf2ddf2, 0x21509dfb, 0xe98e7a37, 0xc94d437d, 0x1bbe8b92, 0x7dc6ef2a, 0xf1e9f47, 0x5c66f4cd, 0x54f6ab19, 0x3b6a9c6f, 0x70c6b6fe, 0x9e80fced, 0x94f0383e, 0xcc7fcc02, 0x8eca39aa, 0x7b2fb1b3, 0x62dd04ef, 0x211fdb00, 0x63ad436c, 0x84bd90bd, 0x55769db8, 0x8a2a7829, 0x5c66f4cd]
for target_crc in crc_list:
for i in range(256):
for j in range(256):
for k in range(256):
data = bytes([i, j, k]) # 构造3字节数据
crc = zlib.crc32(data) & 0xffffffff # 计算CRC32值
if crc == target_crc:
data=data.decode()
print(f"Found matching data: {data}")
flag+=data
break
print('解密得到:'+flag)
得到的密文结合题目描述拿去熊曰解密即可


浙公网安备 33010602011771号