合天网安实验室CTF-基础100-Flag就在这儿
题目描述
嗯,什么东东?相信聪明的你一定会想到吧
相关附件
misc100.txt
题目链接
参考解题步骤
1、下载附件打开后是61366行每行是由逗号分隔的3个数,大部分是255,255,255
这里只截取了少部分
2、第一反应是坐标,觉得不合理,然后又想是不是RGB码,而RGB(255,255,255)对应的是白色,所以猜测可能是在白底上绘制了flag。那么现在要解决的是怎么将对应的图案绘制出来。
这61366行应该就是61366个像素对应的颜色,那么图案如果是正方形的话长宽大约为:247
3、开始画图。语言选择的话Python会比Java的代码量少很多。
发现长宽比不合适,写代码打印了61366所有的因数
其中宽503高122最合适
flag{youc@n’tseeme}
4、提交youc@n'tseeme
验证通过
Python版画图代码
from PIL import Image, ImageDraw# 设置图像大小
width = 503
height = 122# 创建一幅模式为RGB,尺寸为247*247并且背景为白色的图片
image = Image.new('RGB', (width, height), (255, 255, 255))# 创建Draw对象:
draw = ImageDraw.Draw(image)# 打开文件
misc100 = open('misc100.txt')# 循环填充每个像素:
for x in range(width):for y in range(height):# 读取每行rgb值并分割处理成int列表rgb = list(map(int, misc100.readline().split(',')))# 为每个像素设置rgb值draw.point((x, y), (rgb[0], rgb[1], rgb[2]))# 显示图片
image.show()