题目链接:https://ctf.bugku.com/challenges#%E5%A5%BD%E5%A4%9A%E6%95%B0%E5%80%BC
题目给出了一个1.txt
是rgb颜色格式
所以本题应该是把这些数值转换成图像
先计算了一下所给数据条数是61366并不是某一个数的平方
我是先试了247*247和248*248,图像并没有什么特别
然后想到因式分解分解成两个数相乘(503*122)
转成图片得到flag
python脚本如下:
# -*- coding: cp936 -*-
from PIL import Image
#因式分解
def factorization(num):
factor = []
while num > 1:
for i in range(num - 1):
k = i + 2
if num % k == 0:
factor.append(k)
num = int(num / k)
break
return factor
f=open(r'1.txt','rb+')
#创建一张图片
img=Image.new('RGBA',(503,122))
lines=f.readlines()
#print factorization(len(lines))#61366
#因式分解结果[2,61,503]
flag=""
for i in range(503):#宽度
for j in range(122):#高度
#第一个参数为坐标,第二个参数为元组形式的rgb值
img.putpixel((i,j),tuple(eval(lines[i*122+j])))
img.show()
f.close()
转成图片结果: