puzzle

一打开不知道怎么拼,没有任何提示,自己手动拼是几乎不可能的!但是检查了一遍并没有什么额外的信息….搜了一圈才知道有个python训练模型叫gaps

拼图游戏

于是在github上下载这个项目,[pip3 install -e .]安装,完了之后在bin目录下:

使用方法

就可以一代代训练,最好提前处理图像,调整一下对比度、饱和度等,提高模型训练效率。

结果

ce

一段http流量,导出后有个flag.zip文件,里面有个ce文本,打开是一堆255中间穿插其他数值的有点像rgb数值的数值:

txt

如果是rgb数值的话,就把他们做成图片就好了。那长宽呢?发现总共有这么多行:

98457行

也就是说有98457个像素,分解下质因数,推测长宽为887*111。

质因数分解

然后就用PIL跑吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- coding:utf-8 -*-
from PIL import Image

x = 887 #x坐标 通过对txt里的行数进行整数分解
y = 111 #y坐标 x * y = 行数

im = Image.new("RGB", (x, y)) #创建图片
file = open(r'E:\Desktop\CTFGAME\7th雷泽杯\misc1\ce.txt') #打开rbg值的文件

#通过每个rgb点生成图片

for i in range(0, x):
for j in range(0, y):
line = file.readline() #获取一行的rgb值
rgb = line.split(", ") #分离rgb,文本中逗号后面有空格
im.putpixel((i, j), (int(rgb[0]), int(rgb[1]), int(rgb[2]))) #将rgb转化为像素
im.show() #也可用im.save('flag.jpg')保存下来

很快就出来了:

crypto1

我觉得我们需要很熟悉base各种位数编码的特点。而这个竟然用的base36,属实少见

2021-07-16
Contents

⬆︎TOP