首先下载文件,发现是一个py文件和一个记事本文件,接着打开py文件分析
这里解释一下os.urandom().这个函数可以产生n字节随机数,一个字节相当于两个16进制,这里key=os.urandom(2)相当于产生两个字节的随机数,然后*16.这里千万不要把*16理解成结果乘以16了,这里因为是字节,所以是将这个两字节数据复制16份
接着又产生了16字节的初始向量,接着进行异或运算,如果你能把这些理解的话,那么这个key和iv应该会计算了,key是两字节循环的,然后iv只有16位。这里我们先查看一下另一个文件输出的内容

这里异或因为key有32个16进制,而iv只有16个,所以对于高为,iv全是0,那么如果我们把这个结果转字节,应该会发现高位是循环两字节

从这里可以看出,key=b'\xc9\x81'*16。待会我们选择key的低16位和上面这个结果的低16位进行异或就可以计算出iv
于是就可以写出解密脚本了:
from gaoshou import *
c=b'\x8c-\xcd\xde\xa7\xe9\x7f.b\x8aKs\xf1\xba\xc75\xc4d\x13\x07\xac\xa4&\xd6\x91\xfe\xf3\x14\x10|\xf8p'
c=libnum.s2n(c)
xor=91144196586662942563895769614300232343026691029427747065707381728622849079757
xor_bytes=libnum.n2s(xor)
key=xor_bytes[0:2]*16
iv=libnum.s2n(key[:16])^libnum.s2n(xor_bytes[16:])
key1 = libnum.s2n(key) # 密钥
AES_CBC_decode(key1,c,iv)

运行就拿下了flag
这个gaoshou模块是我自定义的模块,需要可以从下面这个链接获取
自定义python模块-优快云博客