下载附件,发现是汤姆猫的邪魅一笑。
放到winhex里面看一下16进制信息。注意图片以FFD8FF,FFD9结束。
直接搜索FFD8.
会发现可以搜索出多个FFD8,以及FFD9,那么这个图片应该是多个图片拼在一起的结果。
将这个图片使用foremost分开。
foremost -t all -i a_very_good_idea.jpg
分开之后可以看见一个to.png和一个to_do.png两个文件,那么理所当然to_do.png文件里应该藏了点东西。保险起见,我们查看了一下图片的大小,后者要比前者大50kb。
那么下面编写代码对比一下这两个图片,相同的不管,不同的地方就可以使用不同的颜色标记,使之突显出来。
编码思路:创建一个底色为纯色的图片,如果在某个像素点两个图片不同,那么在纯色底片上相同的位置换一个颜色标记。
#代码是直接在网上找一下PIL图像处理的写法就ok了。至于w和h的值,用图片1或者2都随意啦
from PIL import Image
image1 = Image.open("to.png")
image2 = Image.open("to_do.png")
p1 = image1.load()
p2 = image2.load()
w = image2.size[0]
h = image2.size[1]
im = Image.new('RGB',(w,h))
p = im.load()
for i in range(w):
cnt = 0
for j in range(h):
if p1[i, j] != p2[i, j]:
p[i,j] = (255,255,255)
im.show()
PIL第一次导入可能会失败,不要慌,点开setting->python interpreter,双击pip,搜索pillow下载。
代码执行,出现一个二维码!
这时候拿出手机扫一扫,就可以出现flag了!
NCTF{m1sc_1s_very_funny!!!}
提交成功!