下载附件得到张gif图,呼应了题目是红绿灯的不断交换
ctf的gif题目,那么一般就是分析帧了
我是在线分析帧。有一千张左右。
我也是看了别人的答案才看出俩,灭有灯的不需要看,黄灯是除了不亮的灯光一共有8个,所以可以联想到二进制。
接下来就是脚本。
# -*-coding: utf-8 -*-
from PIL import Image
binstr = ""
flag = ""
def decode(s):
return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])
for i in range(1168):
image=Image.open(r'./202011/'+str(i)+'.jpg')
# print (image.getpixel((115,55)))#输出颜色值
# print (image.getpixel((115,145)))
tmp1 = image.getpixel((115,55))
tmp2 = image.getpixel((115,150))
# print (type(tmp1))
if(tmp1[0] > 250):
binstr += '1'
elif(tmp2[1] > 250):
binstr += '0'
else:
binstr += ''
print (binstr)
for i in range(len(binstr)):
if i%8==0:
flag +=decode(binstr[i:i+8])
print(flag)
得到flag
0110011001101100011000010110011101111011010100000110110000110011001101000111001100110011010111110111000000110100011110010101111100110100011101000111010000110011011011100111010000110001001100000110111001011111011101000011000001011111011101000111001000110100011001100110011000110001011000110101111101110011001101000110011000110011011101000111100101011111011101110110100000110011011011100101111101111001001100000111010101011111001101000111001000110011010111110011000001110101011101000111001100110001011001000011001101111101
flag{Pl34s3_p4y_4tt3nt10n_t0_tr4ff1c_s4f3ty_wh3n_y0u_4r3_0uts1d3}
大佬链接点击这里