查看源代码

读入超过10个数,看到加密是一个嵌套循环,自己异或后,再和数组每位进行异或,最终输出加密后的数组。
根据异或我们可以看到有2个值,要么没加密,要么和一个char值加密。所以爆破如下:
enc = [
0x26, 0x2c, 0x21, 0x27, 0x3b, 0x23, 0x22, 0x73, 0x75, 0x72, 0x71, 0x21, 0x24, 0x75, 0x76, 0x77,
0x23, 0x78, 0x26, 0x72, 0x75, 0x71, 0x26, 0x22, 0x71, 0x72, 0x75, 0x72, 0x24, 0x70, 0x73, 0x76,
0x79, 0x70, 0x23, 0x25, 0x79, 0x3d
]
for c in range(0, 128):
decrypted = ''.join(chr((byte ^ c) % 128) for byte in enc)#
if decrypted[:4].lower()=='flag':
print(decrypted)
输出:
flag{cb3521ad567c8f251fb1252d03690ce9}
FLAG[CBADCFFBDCE]
1816

被折叠的 条评论
为什么被折叠?



