点开解题链接发现一个很长的字符串,很有规律,都是相似的组合。拖到页面底部发现== 立马反应出是base64,然后在线解码,得到了01字串 尝试01字串转换10进制用chr变成ascii字符,发现有很多不可见字符,应该不是这种方式。 尝试8bit转换成16进制,也有很多不明字符,也失败了 后来用len查看str长度,发现是65536,直觉告诉我这个应该是一个256*256的矩阵 生成矩阵后自然而然想到生成图片 利用pil将矩阵转换成字符串,发现是一个类似二维码的图片 扫描发现并不能扫描出任何东西,因为这个二维码是黑底白色的点。然后尝试对字符串的01进行互换 互换后扫描发现flag 代码如下解题链接:http://www.shiyanbar.com/ctf/1886
import numpy as np from PIL import Image a=base64解码后的字符串 b=[abs((int(x)-1)*255) for x in list(a)] narray = np.matrix(b,dtype='uint8').reshape(256,256) img = Image.fromarray(narray) img.convert('L') img.show()二维码如下
太厉害啦~