基础知识:

PIL

PIL是Python Imaging Library,它为python解释器提供了图像编辑功能。
PIL.Image.new()方法通过给定的模式和大小创建一个新图像。尺寸以(width,height)-tuple,以像素为单位。对于单波段图像,颜色作为单个值给出,对于多波段图像,颜色作为一个元组给出(各波段一个值)。
我们还可以使用颜色名称。如果省略了color参数,则图像将填充为零(通常对应于黑色)。如果颜色为无,则不初始图像。如果您要在图像里粘贴或绘制信息,这将很有用。
用法:
PIL.Image.new(mode, size)
PIL.Image.new(mode, size, color)

参数:
mode:用于新图像的模式。 (可能是RGB,RGBA)
size:包含(宽度,高度)以像素为单位的2元组。
color:图像使用什么颜色。默认为黑色。如果给出的话,对于单频带模式,它应该是单个
整数或浮点值;对于多频带模式,它应该是一个元组。

返回值:Image对象。

putpixel()

PIL是Python Imaging Library,它为python解释器提供了图像编辑功能。 PixelAccess类提供对PIL.Image数据的读写访问权限(像素级)。访问单个像素相当慢。如果要遍历图像里的所有像素,则可能会通过Pillow API的其他部分的方法更快。

putpixel()修改x,y处的像素。对于单波段图像,颜色作为单个数值给出;对于multi-band图像,颜色作为元组给出
用法: putpixel(self, xy, color)

参数:
xy:像素坐标,表示为(x,y)
value:-像素值。

返回值:具有像素的图像。

解题过程

下载文件得到一个txt文件,打开查看全是0和1

1和0可联想到黑和白两颜色,尝试转成二维码

python转二维码:

from PIL import Image
MAX = 25
#二维码大小
pic = Image.new("RGB",(MAX, MAX))
#str = """1111111001110010001111111100000100001111010100000110111010011100010010111011011101010111100001011101101110101010101000101110110000010011000101010000011111111010101010101111111000000000100000110000000011000111011101101000110000001000010110010010010100010011110100001110111001100111101001010110010010011000001001100001001101000111100011111101110010100010110111110011011111101111000110110010010101101100100011110011111111111011100000000101100011000101001111111010010100101010001100000101010101010001100110111010001001111111100101011101000011001011110111101110100100110010010000110000010110000110110110011111111011010000101110101
#"""#修改后的二维码
str="""0000000001110010000000000000000000001111010000000000000000011100010000000000000000010111100000000000000000001010101000000000000000000011000101000000000000000010101010100000000000000000100000110000000011000111011101101000110000001000010110010010010100010011110100001110111001100111101001010110010010011000001001100001001101000111100011111101110010100010110111110011011111101111000110110010010101101100100011110011111111111011100000000101100011000101000000000010010100101010001000000001010101010001100100000000001001111111100100000000000011001011110111000000000100110010010000100000000110000110110110010000000011010000101110101
"""#原二维码
# str为获取的01片段
i=0
for y in range (0,MAX):for x in range (0,MAX):if(str[i] == '1'):pic.putpixel([x,y],(0, 0, 0))else:pic.putpixel([x,y],(255,255,255))i = i+1
pic.show()
pic.save("5.png")
#由于直接预览分辨率太低,所以保存下来观看"""
PIL.Image.new(模式, 大小, 颜色)
"""

运行代码发现上述二维码少了定位标志

通过ps可以手动补全

直接生成二维码
扫描得到flag
flag{QR_c0de_1s_1nterest1n9}

BugkuCTF-MISC题1和0的故事相关推荐

  1. MISC——bugku 1和0的故事

    1和0的故事 下载文件后发现是txt,打开查看全是0和1 想到非黑即白,于是转二维码,下面提供python转二维码 from PIL import Image MAX = 25 #二维码大小 pic ...

  2. Bugku部分密码题以及misc题

    一.把猪关在猪圈里 看题的时候想到了猪圈密码,但打开文件发现还不是猪圈密码的符号,往下翻看到了=关键符号以及一堆英文加数字,我想到了base64密码,于是去搜了发现有base64转化成图片的(网址:B ...

  3. BugkuCTF之misc题之图穷匕见

    BugkuCTF之misc题之图穷匕见 下载文件,用winhex打开,由于是jpg文件,直接搜索FFD9 发现后面接了一长串类似于16进制的数字: 直接把后面的copy下来,用16进制转ascii码工 ...

  4. 退役前的做题记录5.0

    退役前的做题记录5.0 出于某种原因新开了一篇. [CodeChef]Querying on a Grid 对序列建立分治结构,每次处理\((l,mid,r)\)时,以\(mid\)为源点建立最短路树 ...

  5. id3算法c语言实现,从ID3到C5.0的故事:算法详解及实践应用

    原标题:从ID3到C5.0的故事:算法详解及实践应用 在前面,我们分别概述性地介绍了决策树的基本知识: 1.算法概述 ID3(Iterative Dichotomiser3)算法可以说决策树算法中最著 ...

  6. 退役前的做题记录1.0

    退役前的做题记录1.0 租酥雨最近很懒qwq,具体表现在写题的时候不想发题解了. 但是想想这样也不太好,就决定发个一句话(半句话到几句话不等)题解上来. 2018-09.18-2018-09.28 [ ...

  7. 退役前的做题记录2.0

    退役前的做题记录2.0 最近在刷省选题......大致上是按照省份刷的. 不过上面的题目顺序是按照写题的顺序排列的,所以可能会有点乱哈. [BZOJ2823][AHOI2012]信号塔 最小圆覆盖,随 ...

  8. 退役前的做题记录4.0

    退役前的做题记录4.0 最近主要在LOJ上写题 536. 「LibreOJ Round #6」花札 比较显然的二分图博弈模型,先手必胜当且仅当起始点一定在最大匹配中.连边可以对每种颜色以及数字建一个点 ...

  9. 程序员的数学【结城浩】学习笔记(1-3章)0的故事,逻辑,余数

    一,0的故事     计算机为什么用2值表示?   开关链通和断开的状态     进制的转换: 将数字反复除以2,将每步所得的余数的 列逆序排列,得到二进制的表示 指数法则: 10的0次方,2的0次方 ...

最新文章

  1. Spring data redis乱码问题
  2. 一些很实用且必用的小脚本代码:
  3. python opencv 检测特定颜色
  4. python 机器移植
  5. Windows Server 2012 R2 VDI系列(一)—环境简介
  6. java多线程系列:ThreadPoolExecutor源码分析
  7. pwd赋值给变量 shell_Shell脚本中的变量详解
  8. SharePoint 实现ajax异步加载数据的几种方式
  9. DevOps使用教程 华为云(5)迭代计划 进度管理
  10. 在JSP中使用CELL插件
  11. python 多线程爬虫下载中图分类号
  12. 系统内存地址PEEK值大全
  13. 期货业-期货市场的产生
  14. 2020 年 1 月 14 日外延支持结束后继续接收安全更新的过程
  15. 无线降噪耳机哪个品牌好?2021年无线降噪耳机排行榜
  16. 用Qt画圣诞树——要画就画最丑的圣诞树
  17. C语言如何制作dIL文件,C语言怎么加循环
  18. ibm服务器usb虚拟网卡,山石虚拟防火墙安装步骤
  19. 在计算机中将硬盘上的数据复制到u盘上称为,怎样将旧电脑所有数据(包括系统盘数据),全部复制到新电脑上?...
  20. 爬虫----request简介(以及urllib模块和request模块保存图片区别)

热门文章

  1. “新基建”提速,工业互联网大数据发展迎新机遇
  2. 关于机器学习,你需要知道的三件事!
  3. 一张图看懂阿里云网络产品【四】NAT网关
  4. 腾讯自研分布式远程Shuffle服务Firestorm正式开源
  5. 运维质变育新机,华为云能否引领政企运维破局?
  6. 美国燃油“动脉”被黑客切断,网络安全走向哪里?专访山石网科|拟合
  7. 博文强识|进阶企业大咖
  8. 关于这道填空题,你会如何回答?(附带学习链接)
  9. Flowable 数据库表结构 ACT_HI_IDENTITYLINK
  10. Windows下安装ab