从DDCTF2020-拼图题,学习如何做拼图题

该博客介绍了如何通过Python的CV2库解决DDCTF2020的拼图题。作者提供了题目资源链接,并解释了利用图像匹配算法确定包含flag的小图片,通过设置阈值1e-10来识别flag所在的22张小图片,最终手动拼接得到flag。
摘要由CSDN通过智能技术生成

题目下载
链接:https://pan.baidu.com/s/1BBQw9mOxnrmPm4o68lEpEQ
提取码:i7hm

拿到题目,给了一张图片demo.jpg和一个压缩包,压缩包里为6400个小图片,这6400个小图片是将demo.jpg切割得来的,而flag就在其中几块小图片上。如何找到这几张图片并把它们拼在一起得到flag。

我这里是利用python的CV2库的图像匹配算法,由于修改原图,将flag写入到图片上会造成小图片与原图上相应位置的图片匹配度降低,当匹配度低于某个阈值时,可认为是将flag写到了这张小图片上,我这里阈值取的是1e-10,这个阈值是怎么来的呢,就是先找到一两个有flag片段的小图片来计算匹配度,大概是1e-10这个数量级的。

#python3
from cv2 import cv2 
from PIL import Image
import os
import shutil
#读取目标图片
target = cv2.imread(r"C:\Users\Administrator.WQ-20160501NYYU\Downloads\ddctf\file_d0wnl0ad\demo.jpg")

def match(temp_f
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值