解压压缩包 解压出来一个文件file 使用file命令进行查看 发现是data 010查看也无果 看到标题是logistic联想到是否与xor文件有关 遂使用工具xortool 工具在此 xortool file 选概率最大的那个 (13) xortool file -l 13 -c 00 -c表示出现频率最高的字符,根据经验,比如文本内容一般是空格(20),二进制文件一般是00 执行命令后出来一个xortool_out文件 用010打开0.out文件 根据题目提示找到uuid flag{faf5bdd5-ba3d-11da-ad31-d33d75182f1b} 提交flag发现并不对 赛事方又提示与logistic置乱有关 盲猜可能是什么神加密算法吧。。。。 网上一通查找相关论文及解密脚本 回过头来看下刚生成的图片 也看到了提示 说明这个图片有点儿东西 网上找到了一个去水印的脚本
import cv2
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
def logic_encrypt(im, x0, mu):
xsize, ysize = im.shape
im = np.array(im).flatten()
num = len(im)
for i in range(100):
x0 = mu * x0 * (1-x0)
E = np.zeros(num)
E[0] = x0
for i in range(0,num-1):
E[i+1] = mu * E[i]* (1-E[i])
E = np.round(E*255).astype(np.uint8)
im = np.bitwise_xor(E,im)
im = im.reshape(xsize,ysize,-1)
im = np.squeeze(im)
im = Image.fromarray(im)
return im
img = cv2.imread('0.jpg',0)
img = logic_encrypt(img,0.35,3)
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
s = np.log(np.abs(fshift))
plt.imshow(s,'gray')
plt.show()
跑完脚本后得到一个Figure_1.png图片
貌似有flag的字样 这个图片还需经过“还原灰度化”处理才可 用的是python的PIL库 参考此篇文章 最后拿到flag
PS:现在越来越多的CTF比赛所出的隐写和密码学的题目都偏向于算法的研究了。。。。淦
|