攻防世界_MISC之碎纸机11

emmm,研究了一会,也看了官方的wp用的是脚本,只能说,小生惭愧,看布懂

利用网站手工

通过观察可以发现,图片名字无序

按日期升序,打开第三张图片,可以发现两块二维码的定位符,证明出题人没把修改日期random掉,也就是说,按日期排序,照片是有序的

接着我们Ctrl+A全选图片,右键第一张图片,点击重命名

 修改为flag,接着回车

这样子图片名字也有序了,接着我们利用在线工具在线多图合一拼图工具 - UU在线工具

如图设置完每张图片的宽高间距等,将图片全部拖入,然后点击合并

下载图片,然后用PS打开

将亮度拉满,对比度掉最低,然后保存扫码,得到flag

flag{You Can Repair A Picture From Splices Baesd On Entropy}

脚本一把梭

抄wp里的脚本,只是将python2格式改成了python3,加了一些注释,可惜我没完全看懂

import cv2
import os
import numpy
import copy
import itertools
import math

images = []

def judge(A, B):
    diff = 0
    for r in range(0, len(A)):
        #diff += (A[r][len(A[0]) - 1][0] - B[r][0])[0]
        #diff += (A[r][len(A[0]) - 1][1] - B[r][0])[1]
        diff += (A[r][len(A[0]) - 1][2] - B[r][0])[2] ** 0.25
    return diff

def combine(A, B):
    final_matrix = numpy.zeros((len(A), len(A[0]) + len(B[0]), 3), numpy.uint8)
    final_matrix[0:len(A), 0:len(A[0])] = A
    final_matrix[0:len(A), len(A[0]):len(A[0]) + len(B[0])] = B
    return final_matrix

if __name__ == "__main__":
    f_images = os.listdir("./images")       #获取images目录下所有文件或文件夹(不包括.和..)
    for f_image in f_images:        
        images.append(
            cv2.imread(         
                "images\\" + f_image
            )
        )               #列表存放OpenCV读取的图片
    while len(images) > 1:
        min_entropy = -1
        to_combine = None
        for i in range(1, len(images)):
            entropy = judge(images[0], images[i])
            if min_entropy == -1 or entropy < min_entropy:
                min_entropy = entropy
                to_combine = i
        images[0] = combine(images[0], images[to_combine])
        print(len(images), len(images[0][0]))
        images.pop(to_combine)
    cv2.imwrite("./result.png", images[0])
    

根据人工智能算法拼接的二维码图片,得到的结果是分半的二维码,PS修复一下即可

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金 帛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值