虚假的压缩包是伪加密,修改第二个PK后五位为偶数即可

BUUCTF:[GUET-CTF2019]虚假的压缩包_python


BUUCTF:[GUET-CTF2019]虚假的压缩包_压缩包_02


RSA,解密脚本如下

import gmpy2

p=gmpy2.mpz(3)
q=gmpy2.mpz(11)
e=gmpy2.mpz(3)
l=(p-1)*(q-1)
d=gmpy2.invert(e,l)
c=gmpy2.mpz(26)
n=p*q
ans=pow(c,d,n)
print ans

解压密码是:答案是5,用于解压另一个压缩包

解压后这张图,使用winhex修改高度

BUUCTF:[GUET-CTF2019]虚假的压缩包_python_03


第二行前四位是宽后四位是高

BUUCTF:[GUET-CTF2019]虚假的压缩包_压缩包_04


有个异或5的标志,与前面的异或加密是一个思路,不过这是单个字符异或(python2)

f1 = open('./cipher','r')
xor_data = f1.read()
f1.close()
dec_data = ""
for i in xor_data:
    tmp = int(i,16) ^ 5
    dec_data += hex(tmp)[2:]
f2 = open('./data.doc','wb')
f2.write(dec_data.decode('hex'))
f2.close()

BUUCTF:[GUET-CTF2019]虚假的压缩包_python_05


打开后,没看到flag但是搜索flag字符,却发现有,改变文本颜色之后发现flag

BUUCTF:[GUET-CTF2019]虚假的压缩包_python_06


flag{_th2_7ru8_2iP_}