攻防世界misc新手之gif

下载附件并解压,发现是一堆黑色和白色的图片,按某种规律排列,猜想flag就应该隐藏在黑白图片的排列顺序里

黑、白两种图片应该有对应的含义,我首先想到的是摩斯电码,黑白对应‘.’和‘-’,但分析之后发现这个猜想不可行,一是没有分隔符,二是摩斯电码里面并不包含‘{’和‘}’

然后又联想到黑白两种状态可能对应二进制的‘0’和‘1’,而这些黑白图片的顺序可以改写成一串二进制序列,然后发现图片总数为104,是8的倍数,自然联想到一个字节8位二进制码,可以尝试对得到的序列按8位分组

攻防世界misc新手之gif_第1张图片
在上面图中其实已经可以推测出,白色对应0,黑色对应1,得到的8位二进制数应该对应ascii的字符编码

下面是得到的二进制序列:

01100110 01101100 01100001 01100111 01111011 01000110 01110101 01001110 01011111 01100111 01101001 01000110 01111101

再写一段python脚本把二进制数转为字符

x=[0b01100110, 0b01101100, 0b01100001, 0b01100111, 0b01111011, 0b01000110, 0b01110101, 0b01001110, 0b01011111, 0b01100111, 0b01101001, 0b01000110, 0b01111101]
b="";
for a in x:
    b+=chr(a);
print(b)

攻防世界misc新手之gif_第2张图片
小结:本题的关键在于发现图片序列的内在含义,将黑白联想到0和1,得到01序列之后就是体力活了,写一段代码转下码就可得到flag

你可能感兴趣的:(ctf总结)