解压得到下图两个zip文件,虚假的压缩包、真实的压缩包
使用010editor打开,发现是伪加密,把09改为00即可打开
打开以后,发现是是一个rsa解密题
上python脚本
import gmpy2
def find_pq(n):
for p in range(2, int(n**0.5) + 1):
if n % p == 0:
q = n // p
return p, q
return None
def rsa_decrypt(n, e, c):
p, q = find_pq(n)
phi_n = (p - 1) * (q - 1)
d = gmpy2.invert(e, phi_n)
m = pow(c, d, n)
return m
n = 33 # 替换为实际的n值
e = 3 # 替换为实际的e值
c = 26 # 替换为实际的密文c值
plaintext = rsa_decrypt(n, e, c)
print("明文m为:", plaintext)
#请注意,上述代码中的 n、e、c 需要根据实际情况进行替换。
脚本运行结果如下
使用010editor打开真实压缩包发现09出现是偶次,是真加密
使用虚假的压缩包的计算结果5去解压失败,使用 答案是5 解压成功
是一张图片和无后缀名文件
图片拖入010editor
不对,这是没有模板Templates,没有提示不方便,去安装jpg模板,Templates > Template Repository'
Template Repositoryhttps://www.sweetscape.com/010editor/repository/templates/ or Script Repository |
安装好了使用jpg模板
不对,仔细看下文件头原来是png。改成png模板
上CRC脚本看看真实高宽,为了方便我把图改名为1.png
import os
import binascii
import struct
crcbp = open("1.png", "rb").read()
for i in range(1024):
for j in range(1024):
data = crcbp[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + crcbp[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if crc32 == 0x1670bae6: # 图片特定crc值 1670bae6
print(i, j)
print("hex", hex(i), hex(j))
宽0xc6 高0xf2
import os
import binascii
import struct
crcbp = open("1.png", "rb").read()
for i in range(1024):
for j in range(1024):
data = crcbp[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + crcbp[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
if crc32 == 0x1670bae6: # 图片特定crc值 1670bae6
print(i, j)
print("hex", hex(i), hex(j))
B2改F2
^5 异或5最后一个箱子:亦真亦假是一些字符
上异或脚本
记得不能在有中文的路径运行脚本
生成一个data.docx,开始以为是zip
改字体颜色
FLAG{_th2_7ru8_2iP_}改flag{_th2_7ru8_2iP_} 提交
题目地址 https://buuoj.cn/challenges
标签:struct,crcbp,hex,宽高,附送,crc32,import,png From: https://blog.csdn.net/weixin_34979095/article/details/141322206