Time To Live

Kyrie-Lrving 2024-10-26 18:01:43 27 0


直接搜索题目名即可得知大概的意思,即把所有数字转2进制之后可以发现后6位全是1,取前两位即可解密,但是这里改了改,换成了后四位,但是解密脚本还是很好写

file=open(r"C:\Users\16334\Desktop\Time To Live.txt").read().splitlines()
bina=''
for i in file:
    a=int(i)
    a=bin(a)[2:].zfill(8)
    bina+=a[0:4]
base=long_to_bytes(int(bina,2))

提取之后就可以得到一段完整的base64,同时可以看出这是一个jpg图片转过来的base64,解密即可得到原图,再根据题目描述可以猜到有一个图片盲水印,由于只有一张图,所以猜测是傅里叶盲水印,脚本或者工具都可以解密,完整exp如下

from Crypto.Util.number import *
import base64
file=open(r"C:\Users\16334\Desktop\Time To Live.txt").read().splitlines()
bina=''
for i in file:
    a=int(i)
    a=bin(a)[2:].zfill(8)
    bina+=a[0:4]
base=long_to_bytes(int(bina,2))
flagimg=base64.b64decode(base)
with open(r"C:\Users\16334\Desktop\1.jpg",'wb') as f:
    f.write(flagimg)
    f.close
    
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread(r"C:\Users\16334\Desktop\1.jpg", 0) 
f = np.fft.fft2(img)           
fshift = np.fft.fftshift(f)     
s1 = np.log(np.abs(fshift))
plt.subplot(121)
plt.imshow(img, 'gray')
plt.title('original')
plt.subplot(122)
plt.imshow(s1,'gray')
plt.title('center')
plt.show()
分类:MISC
image
作者:Kyrie-Lrving

21

提交

0

收入

相关WriteUP

问题反馈