当前位置: 首页 > news >正文

PolarCTF训练

Misc

图片题

0和255

点击查看 image_list.py
# -*- coding = utf-8 -*-
# @software:PyCharm
from PIL import Image
image = Image.open('flag.png')   #flag.png分辨率为33*33
width = image.width
height = image.height
image_list = []
for x in range(height):scanline_list = []for y in range(width):pixel = image.getpixel((y, x))scanline_list.append(pixel)image_list.append(scanline_list)
print(image_list)
点击查看 image_list.txt
[[255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 255, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 255, 255, 255, 255, 0, 255, 0, 255, 255, 0, 255, 0, 0, 255, 255, 255, 0, 255, 255, 255, 255, 255, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0, 255, 255, 0, 0, 255, 255, 0, 0, 0, 255, 255, 0, 255, 0, 0, 0, 255, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 0, 255, 0, 255, 0, 0, 0, 255, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0, 255, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 255, 255, 255, 255, 0, 255, 0, 255, 255, 255, 0, 255, 255, 0, 255, 255, 0, 255, 255, 255, 255, 255, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 0, 255, 255, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 0, 255, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 0, 255, 255, 255, 0, 255, 255, 0, 255, 0, 255, 0, 255, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 0, 0, 255, 255, 0, 0, 0, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255, 0, 255, 255, 0, 0, 255, 255, 255, 255], [255, 255, 255, 255, 255, 0, 255, 255, 0, 255, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 0, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 0, 0, 255, 255, 0, 255, 255, 255, 255, 0, 0, 0, 0, 255, 0, 255, 255, 0, 0, 255, 0, 0, 0, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 255, 0, 255, 255, 0, 0, 255, 255, 255, 0, 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 255, 255, 255, 255], [255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 255, 0, 255, 255, 255, 0, 0, 0, 255, 255, 0, 0, 255, 0, 0, 255, 255, 0, 255, 255, 255, 255, 255], [255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 0, 255, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 255, 0, 0, 255, 0, 255, 255, 255, 0, 0, 255, 0, 255, 255, 255, 255, 255], [255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 0, 0, 0, 0, 255, 255, 0, 255, 0, 255, 0, 255, 255, 0, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 255, 255, 255, 255, 0, 255, 255, 255, 255, 0, 255, 0, 0, 0, 0, 255, 255, 255, 0, 255, 0, 255, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0, 255, 255, 255, 255, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0, 255, 0, 255, 255, 255, 0, 0, 255, 255, 255, 0, 255, 0, 0, 255, 0, 0, 255, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0, 255, 255, 255, 255, 255, 0, 255, 0, 255, 255, 255, 0, 255, 0, 0, 0, 255, 0, 255, 255, 255, 255], [255, 255, 255, 255, 0, 255, 255, 255, 255, 255, 0, 255, 255, 0, 255, 0, 0, 255, 255, 0, 255, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 0, 0, 0, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]]

image_list.py 里提取像素方式是光栅扫描,即按行扫描,从左到右,从上到下。
image_list.txt 内容是一个二维列表,即灰度图(模式 L),且外层是行,内层是列。
结构如下:
[
[ (0,0), (1,0), (2,0) ], # 第 1 行 (Top)
[ (0,1), (1,1), (2,1) ], # 第 2 行
[ (0,2), (1,2), (2,2) ] # 第 3 行 (Bottom)
]

还原脚本:

from PIL import Image
import jsonwith open('image_list.txt', 'r', encoding='utf-8') as f:image_list = json.load(f)# 列表外层长度对应行,也就是图像的高 h
# 列表内层长度对应列,也就是图像的宽 w
h, w = len(image_list), len(image_list[0])
p = image_list[0][0]
mode = 'L' if isinstance(p, int) else 'RGBA' if len(p) == 4 else 'RGB'# PIL (Pillow) 库遵循计算机图形学的标准坐标系 (列,行)
img = Image.new(mode, (w, h))
for x in range(h):          # 遍历每一行for y in range(w):      # 遍历每一列pixel_value = image_list[y][x]img.putpixel((y, x), pixel_value)
img.save('restored.png')print(f"还原成功:{w}x{h} ({mode}) -> restored.png")
http://www.jsqmd.com/news/416826/

相关文章:

  • 2026年口碑好的锌合金压铸/新能源汽车铝合金压铸口碑排行精选供应商推荐 - 行业平台推荐
  • RSA 2048分解为1024解密
  • 2026年知名的现场机加工轴修复/现场机加工钻孔镗孔哪家靠谱制造厂家推荐 - 行业平台推荐
  • 2026年口碑好的五金震动盘/高速震动盘哪家专业制造厂家实力参考 - 行业平台推荐
  • 2026年靠谱的真空干燥机/闪蒸干燥机公司口碑推荐哪家靠谱 - 行业平台推荐
  • 2026济南靠谱的婚纱摄影工作室推荐权威榜单:特色影棚,价格透明性价比高 - 速递信息
  • 寒假学习8 - 2305
  • 2026年知名的弹簧/新能源汽车继电器弹簧可靠供应商参考哪家靠谱(可靠) - 行业平台推荐
  • 探讨企阳餐饮展基本信息,招商和观众质量性价比高吗 - 工业推荐榜
  • 2026年热门的拉伸件/五金拉伸件制造厂家选购指南怎么选(精选) - 行业平台推荐
  • ROHS2.0检测仪性价比高的厂商推荐,选择时要注意什么? - myqiye
  • 专业的厂房降温厂家怎么收费?长沙威昌达收费 贵不贵? - myqiye
  • 2026年切纸机批发厂家有哪些?行业实力厂商盘点 - 品牌排行榜
  • spark学习4 - 2305
  • 2026年质量好的液压传动自润滑轴承/臂车自润滑轴承如何选生产商推荐(精选) - 行业平台推荐
  • 简阳靠谱的护理培训学校推荐,费用是怎么收的? - 工业品网
  • 分析营养早餐机构排行,一鸣食品凭啥能脱颖而出 - mypinpai
  • 企业 GEO 选型指南:2026年Top5头部服务商技术实力与行业适配度测评 - 速递信息
  • 2026年热门的球网/足球网公司口碑推荐哪家靠谱 - 行业平台推荐
  • 2026年口碑好的电厂橡胶输送带/环形橡胶输送带厂家推荐哪家好(高评价) - 行业平台推荐
  • 2026年知名的精密铝合金压铸加工/定制化精密压铸加工口碑排行精选供应商推荐 - 行业平台推荐
  • 2026年评价高的PTFE纤维缠绕轴承/自润滑纤维缠绕轴承畅销生产厂家采购指南怎么选 - 行业平台推荐
  • 四大系列减速机鑫钺传动品牌怎么样,性价比高不高? - 工业品网
  • eBPF及其对可观测的意义【译文】 - liyan
  • 2026年激光镭雕机厂家专业选型指南:创轩(常熟)激光科技,覆盖紫外/玻璃/光纤/皮秒全系设备解析 - 品牌推荐官
  • 聚焦提质守底线 北京冷链赋能连锁餐饮与冻品供应链高质量发展 - 博客万
  • P4931 [MtOI2018] 情侣?给我烧了!(加强版)
  • 创建型 工厂模式
  • 2026年评价高的斑马鱼繁殖系统/斑马鱼饲养系统哪家质量好厂家实力参考 - 行业平台推荐
  • 2026切纸机品牌哪家专业?行业资深从业者分析推荐 - 品牌排行榜