首页 > 其他分享 >[WP] 攻防世界 CSFJ0971 碎纸机

[WP] 攻防世界 CSFJ0971 碎纸机

时间:2023-06-22 19:56:36浏览次数:53  
标签:image 碎纸机 WP path folder CSFJ0971 os Image 图片

「附件」

下载附件,内含50个图片,看着像是被碎纸机粉碎过

「思路」

根据附件判断,应该是要将50个图片合并成一张图。
观察图片的名称,由字母和数字构成,长度都是20位,尝试解码,无结果,猜测是随机生成的。
打开图片属性,创建日期是图片解压的时间,猜测是根据修改日期升序排列。
让百度的搜索AI伙伴生成一段Python代码来合并看看。

「过程」

打开百度 搜索AI伙伴 https://chat.baidu.com/ ,在对话框中输入以下描述:

python 多张图片左右拼接成一张

上述代码的image_list 改为从文件夹获取图片名

上述代码,在获取文件夹中所有图片的名称前,先按修改时间进行升序排序,再读取

通过2次修改,AI生成的Python代码应该符合要求,将代码复制到VScode中,修改图片文件夹路径后,果断运行。

from PIL import Image
import os

# 定义要拼接的文件夹路径
folder_path = './images'

# 获取文件夹中所有的图片文件名,按修改时间进行升序排序
image_files = sorted(filter(lambda f: f.endswith('.jpg') or f.endswith('.png'), os.listdir(folder_path)), key=lambda f: os.path.getmtime(os.path.join(folder_path, f)))

# 计算拼接后的图片宽度和高度
widths, heights = zip(*(Image.open(os.path.join(folder_path, img)).size for img in image_files))
total_width = sum(widths)
max_height = max(heights)

# 创建一个新的空白图片,宽度为拼接后的图片宽度,高度为最高图片的高度
new_image = Image.new('RGB', (total_width, max_height))

# 将要拼接的图片粘贴到新的空白图片上
x_offset = 0
for img in image_files:
    new_image.paste(Image.open(os.path.join(folder_path, img)), (x_offset, 0))
    x_offset += Image.open(os.path.join(folder_path, img)).size[0]

# 保存拼接后的图片
new_image.save('combined_image.jpg')

也可通过 https://uutool.cn/photo-collage/ 在线多图合一拼图工具 进行拼图,尝试过先排序,后导入在线工具,生成的图片错位,故使用了Python合并图片。
得到拼接后的图片。
用手机扫一扫,得到flag。

若手机扫不出来,可使用 Stegsolve 得到更干净的图片。

「工具」

  • 搜索AI伙伴
  • Python
  • Stegsolve
  • 微信扫一扫

「知识拓展」

Python安装Image库命令:pip install Image

标签:image,碎纸机,WP,path,folder,CSFJ0971,os,Image,图片
From: https://www.cnblogs.com/stonechen/p/CSFJ0971.html

相关文章

  • WPF 自定义ListBox
    需求:ListBox只在选中时有相应的高亮颜色,光标悬浮或滑动时不显示高亮;以满足在触屏上时不会误导人操作…… 以下为实现代码:namespaceFrameControlLibrary{///<summary>///按照步骤1a或1b操作,然后执行步骤2以在XAML文件中使用此自定义控件。///......
  • WPF编译时“所使用的 PresentationFramework 6.0.2 高于所引用的标识为 6.0.0 程序集
    一个用.NET6开发的WPF应用,前面编译执行都正常。同事要出差,把代码拷贝到开发本上编译时,编译报错。编译报错的内容主要如标题所示:所使用的PresentationFramework6.0.2高于所引用的标识为PresentationFramework6.0.0程序集PresentationFramework上网搜索了一下,搜到了林......
  • WPF 自定义ComboBox
    需求:ComboBox下拉列表,在光标移出ComboBox后,下拉列表立即收起。 利用WPF的 自定义控件继承于ComboBox开发项目中需要的JComboBox,其代码如下:namespaceFrameWPF{///<summary>///按照步骤1a或1b操作,然后执行步骤2以在XAML文件中使用此自定义控件。......
  • DevExpress WPF功能区控件,更轻松创建商业应用工具栏!(下)
    在上文中(点击这里回顾>>),我们主要介绍了DevExpressWPF的Ribbon、Toolbar和Menus组件支持MVVM、功能区命令栏和视图等,本文将继续介绍这些组件的自定义功能等。DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建......
  • BUUCTF:[SWPU2019]Web3
    参考:https://www.leavesongs.com/PENETRATION/client-session-security.htmlhttp://forever404.cn/2019/12/14/SWPU2019web%E5%A4%8D%E7%8E%B0/点击upload有权限设置,猜测cookie伪造权限不够,查看session使用P师傅的脚本可以解这个session#!/usr/bin/envpython3importsysimpor......
  • WPF 实现在Combobox下拉菜单展开,未选择,直接点击button自动收起下拉菜单,并响应button绑
    在正常情况下,下拉菜单展开后,我们都会选择一个合适的选项;但是在某些时候,展开下拉菜单后,发现并不需要选择一个选项,只是需要进行后续操作,然后这时在点击其他位置的button时,你会发现:只有combobox的下拉菜单收起来了,但是button的绑定事件并未响应…… 为了实现未选择下拉菜单,点击bu......
  • BUUCTF:[SWPU2019]伟大的侦探
    题目地址:https://buuoj.cn/challenges#[SWPU2019]%E4%BC%9F%E5%A4%A7%E7%9A%84%E4%BE%A6%E6%8E%A2密码.txt可解压,misc文件夹需要解压密码,将密码.txt使用010Editor打开,使用EBCDIC编码即可发现密码明文解压,misc文件夹内容如下:福尔摩斯小人密码对照得到:iloveholmesandwllmflag{ilov......
  • php怎么在线预览word文件?php预览.doc、.docx、.wps文件
    php预览WordPHP要实现在线Word预览只需要3步第一步:准备一个文件地址,如下:http://usdoc.cn/vw/文件模板.docx第二步预览前置地址:http://vw.usdoc.cn/?src=第三步开始预览http://vw.usdoc.cn/?src=http://usdoc.cn/vw/文件模板.docx......
  • 2023CISCN部分wp
    remov不想写了ezbytedwarf字节码执行直接readelf-Wwf读取字节码得到最后让r12返回值为0即四个表达式分别成立所以importreprint(hex((0^1237891274917891239^2616514329260088143)-1892739))print(hex((0^1209847170981118947^8502251781212277489)-8971237))print......
  • WPF 入门笔记 - 05 - 依赖属性
    如果预计中的不幸没有发生的话,我们就会收获意外的喜悦。--人生的智慧-叔本华WPF属性系统这一部分是中途加的,直接依赖属性有点迷糊......