栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

攻防世界-a

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

攻防世界-a

下载附件,发现是汤姆猫的邪魅一笑。

放到winhex里面看一下16进制信息。注意图片以FFD8,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!!!}

提交成功!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/601601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号