• 攻防世界_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,加了一些注释,可惜我没完全看懂

    1. import cv2
    2. import os
    3. import numpy
    4. import copy
    5. import itertools
    6. import math
    7. images = []
    8. def judge(A, B):
    9. diff = 0
    10. for r in range(0, len(A)):
    11. #diff += (A[r][len(A[0]) - 1][0] - B[r][0])[0]
    12. #diff += (A[r][len(A[0]) - 1][1] - B[r][0])[1]
    13. diff += (A[r][len(A[0]) - 1][2] - B[r][0])[2] ** 0.25
    14. return diff
    15. def combine(A, B):
    16. final_matrix = numpy.zeros((len(A), len(A[0]) + len(B[0]), 3), numpy.uint8)
    17. final_matrix[0:len(A), 0:len(A[0])] = A
    18. final_matrix[0:len(A), len(A[0]):len(A[0]) + len(B[0])] = B
    19. return final_matrix
    20. if __name__ == "__main__":
    21. f_images = os.listdir("./images") #获取images目录下所有文件或文件夹(不包括.和..)
    22. for f_image in f_images:
    23. images.append(
    24. cv2.imread(
    25. "images\\" + f_image
    26. )
    27. ) #列表存放OpenCV读取的图片
    28. while len(images) > 1:
    29. min_entropy = -1
    30. to_combine = None
    31. for i in range(1, len(images)):
    32. entropy = judge(images[0], images[i])
    33. if min_entropy == -1 or entropy < min_entropy:
    34. min_entropy = entropy
    35. to_combine = i
    36. images[0] = combine(images[0], images[to_combine])
    37. print(len(images), len(images[0][0]))
    38. images.pop(to_combine)
    39. cv2.imwrite("./result.png", images[0])

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

  • 相关阅读:
    C++ STL详解(五) -------- priority_queue
    【随机过程】布朗运动
    域名是什么 有什么用
    微信小程序——生命周期
    git中的cherry-pick和merge有些区别以及cherry-pick怎么用
    SQL创建新表
    Java集合框架
    全网首发,克莱斯勒东南大捷龙jeep道奇DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装
    android源码设计模式学习之单列模式
    Find My运动相机|苹果Find My技术与相机结合,智能防丢,全球定位
  • 原文地址:https://blog.csdn.net/l2872253606/article/details/126817710