【Write Up】Cycles

19011343447 2025-08-22 21:14:31 80 0 返回题目详情


with open('cycles.txt') as f:
    code = f.read()
    exec(code)
p = P
ct = ciphertext
for a in range(p-1, (p-1) * (2 ** 24), p-1):
    if len(bin(a)) >= 1050:
        break
    from Cryptodome.Util.number import long_to_bytes
    key = long_to_bytes(a)[:16]
    from Cryptodome.Cipher import AES
    cipher = AES.new(key, AES.MODE_ECB)
    flag = cipher.decrypt(ct)
    from Cryptodome.Util.Padding import unpad
    try:
        # 解密后去除填充
        unpadded_flag = unpad(flag, AES.block_size)
        # 如果没有抛出异常,表示填充有效,可以进行进一步处理
        if unpadded_flag.startswith(b'byuctf{'):
            print(unpadded_flag)
    except ValueError:
        # 填充无效,跳过该flag
        continue

最后 try-except 那一段是 AI 写的。因为不会写 unpad 报错的代码。

分类:Crypto
image
作者:19011343447

18

提交

0

收入

相关WriteUP

问题反馈