import zipfile
import string
import binascii
def CrackCrc(crc):
for i in dic:
for j in dic:
for p in dic:
for q in dic:
s = i + j + p + q
if crc == (binascii.crc32(s.encode())):
#print s
f.write(s)
return
def CrackZip():
for I in range(68):
file = 'out' + str(I) + '.zip'
f = zipfile.ZipFile(file, 'r')
GetCrc = f.getinfo('data.txt')
crc = GetCrc.CRC
#以上3行为获取压缩包CRC32值的步骤
print (hex(crc))
CrackCrc(crc)
dic = string.ascii_letters + string.digits + '+/='
f = open('out.txt', 'w')
CrackZip()
f.close()
跑出的数据
0x75f90d3a
0xbb21560
0x9b0d08f1
0x9b0d08f1
0x30fa0c4d
0xbaab6848
0xc2a03377
0x9b0d08f1
0x56c367d7
0x8881454e
0xf399b503
0x8a39ea8d
0xf8522b5f
0x22e2c069
0x9b0d08f1
0xabc2f082
0x1b10de7b
0x4246c91b
0x5a277153
0xe54efe07
0x65e4ea0a
0xdb4eed2e
0xac675758
0x3c84028a
RAR 文件头:526172211A0700
RAR 文件尾:C43D7B00400700
改文件头之后
在注释里
flag{nev3r_enc0de_t00_sm4ll_fil3_w1th_zip}