[GUET-CTF2019]虚假的压缩包
题目地址 : https://buuoj.cn/challenges#[GUET-CTF2019]%E8%99%9A%E5%81%87%E7%9A%84%E5%8E%8B%E7%BC%A9%E5%8C%85
解压那个虚假的压缩包得到一个txt文件打开时一道rsa计算题
import gmpy2
p = 11
q = 3
n = 33
e = 3
c = 26
phi_n = (p-1)*(q-1)
d = gmpy2.invert(e,phi_n)
m = pow(c,d,n)
print(m)
解得答案等于5,压缩包密码是
答案是5
然后用crc脚本修复那张png图片的宽高,得到提示 ^5
把亦真亦假文件数据进行^5 ,得到docx文件
import struct
data = open('./亦真亦假',"r").read()
with open('flag.zip',"wb") as f:
hex_data = ""
for i in data:
hex_data += (hex(int(i,16)^5)[2:])
print(hex_data)
f.write(struct.pack("B",int(hex_data,16)))
修改字体颜色得到flag
FLAG{_th2_7ru8_2iP_}