BugKu:1和0的故事
附件:
0000000001110010000000000
0000000000011110100000000
0000000001110001000000000
0000000010111100000000000
0000000010101010000000000
0000000001100010100000000
0000000010101010100000000
0000000001000001100000000
1100011101110110100011000
0001000010110010010010100
0100111101000011101110011
0011110100101011001001001
1000001001100001001101000
1111000111111011100101000
1011011111001101111110111
1000110110010010101101100
1000111100111111111110111
0000000010110001100010100
0000000010010100101010001
0000000010101010100011001
0000000000100111111110010
0000000000011001011110111
0000000001001100100100001
0000000011000011011011001
0000000011010000101110101
题目附件是一个txt,内容是一个25*25的01矩阵。用1表示黑色方块,0表示白色方块,猜测这是一个缺少定位符的二维码。
为了方便操作,先去掉换行符:
with open('1和0的故事.txt', 'r') as f1:with open('1.txt', 'w') as f2:for line in f1.readlines():f2.write(line.strip())
方法一(Excel)
import xlwt# 创建一个xls
book = xlwt.Workbook()
# 创建一个样式 (黑色填充,无边界)
Style = xlwt.easyxf('pattern: pattern solid, fore_colour black; font: height 250')
# 添加一个表单,允许覆盖
table = book.add_sheet('flag_code', cell_overwrite_ok=True)with open('1.txt', 'r') as f:s = f.read()MAX = 25 # 二维码边长,若大于256需要用xlsxwriter模块i = 0
for y in range(0, MAX):for x in range(0, MAX):table.col(x).width = 256*3 # 256为衡量单位,3表示3个字符宽度if(s[i] == '1'): # 如果是1则在Excel上涂黑table.write(y, x, '', style=Style)i += 1book.save('1和0的故事.xls')
# 7*7的二维码定位符
locator = [[1, 1, 1, 1, 1, 1, 1],[1, 0, 0, 0, 0, 0, 1],[1, 0, 1, 1, 1, 0, 1],[1, 0, 1, 1, 1, 0, 1],[1, 0, 1, 1, 1, 0, 1],[1, 0, 0, 0, 0, 0, 1],[1, 1, 1, 1, 1, 1, 1]
]def draw_locator(y, x):for i in range(7):for j in range(7):pos1 = locator[i][j]if pos1 == 1: # 如果是1则在Excel上涂黑table.write(y+i, x+j, '', style=Style)draw_locator(0, 0) # 左上角
draw_locator(0, 18) # 右上角
draw_locator(18, 0) # 左下角book.save('1和0的故事.xls')
方法二(PIL)
from PIL import Imagewith open('1.txt', 'r') as f:s = f.read()MAX = 25 # 二维码边长
pic = Image.new("RGB", (MAX, MAX))i = 0
for y in range(0, MAX):for x in range(0, MAX):if(s[i] == '1'):pic.putpixel([x, y], (0, 0, 0))else:pic.putpixel([x, y], (255, 255, 255))i += 1pic.show()
pic.save("1和0的故事.png")
# 7*7的二维码定位符
locator = [[1, 1, 1, 1, 1, 1, 1],[1, 0, 0, 0, 0, 0, 1],[1, 0, 1, 1, 1, 0, 1],[1, 0, 1, 1, 1, 0, 1],[1, 0, 1, 1, 1, 0, 1],[1, 0, 0, 0, 0, 0, 1],[1, 1, 1, 1, 1, 1, 1]
]def draw_locator(y, x):for i in range(7):for j in range(7):pos1 = locator[i][j]if(pos1 == 1):pic.putpixel([x+i, y+j], (0, 0, 0))else:pic.putpixel([x+i, y+j], (255, 255, 255))draw_locator(0, 0) # 左上角
draw_locator(0, 18) # 右上角
draw_locator(18, 0) # 左下角pic.show()
pic.save("1和0的故事.png")
flag{QR_c0de_1s_1nterest1n9}
BugKu:1和0的故事相关推荐
- MISC——bugku 1和0的故事
1和0的故事 下载文件后发现是txt,打开查看全是0和1 想到非黑即白,于是转二维码,下面提供python转二维码 from PIL import Image MAX = 25 #二维码大小 pic ...
- bugku 1和0的故事
题目: 本题为二进制转二维码 import PIL from PIL import Image MAX = 25 img = Image.new("RGB",(MAX,MAX)) ...
- ctf (bugku)(0和1的故事)
身为小白的我,开始看见题目就头皮发麻,先是看评论,知道这个东西要搞成二维码,但问题来了,小白不会脚本,然后就老实的用excel做吧,再然后发现怎么也不能直接把数字直接粘贴到excel的每一个表格中,再 ...
- id3算法c语言实现,从ID3到C5.0的故事:算法详解及实践应用
原标题:从ID3到C5.0的故事:算法详解及实践应用 在前面,我们分别概述性地介绍了决策树的基本知识: 1.算法概述 ID3(Iterative Dichotomiser3)算法可以说决策树算法中最著 ...
- 程序员的数学【结城浩】学习笔记(1-3章)0的故事,逻辑,余数
一,0的故事 计算机为什么用2值表示? 开关链通和断开的状态 进制的转换: 将数字反复除以2,将每步所得的余数的 列逆序排列,得到二进制的表示 指数法则: 10的0次方,2的0次方 ...
- 讲讲“工业4.0”的故事
先看三个概念: 工业1.0 机械化,以蒸汽机为标志,用蒸汽动力动力驱动机器取代人力,从此手工业从农业分离出来,正式进化为工业. 工业2.0 电气化,以电力的广泛应用为标志,用电力驱动机器取代蒸汽动力, ...
- BugkuCTF-MISC题1和0的故事
基础知识: PIL PIL是Python Imaging Library,它为python解释器提供了图像编辑功能. PIL.Image.new()方法通过给定的模式和大小创建一个新图像.尺寸以(wi ...
- Web3.0这个故事,要从《大教堂与市集》讲起
<The Cathedral and the Bazaar>(大教堂与市集)被誉为开源运动的「圣杯」,是作者 Eric Steven Raymond 所撰写的软件工程方法论,以 Linux ...
- .NET微服务迁移至.NET6.0的故事
目录 为什么是.NET 历史原因 生产力和性能 法律风险 迁移过程 代码迁移 发布计划 迁移结果 关于性能的提升 更完善的观测指标 性能提升来自哪里? .NET Freamwork 到 .NET Co ...
最新文章
- (28)SpringBoot启动时的Banner设置【从零开始学Spring Boot】
- 2020中级财管(押题班)
- STL库容器vector at函数
- 使用 Wireshark 对本地 socket 通信进行数据抓包
- 数字ab写成c语言表达式,《C语言程序设计》复习题(21页)-原创力文档
- Apple发布watchOS 5 Beta 9
- python并行计算进程池通信_Python使用进程池管理进程和进程间通信
- PHP去除顽固空格和编码问题
- java经典编程练习题_java笔试经典练习题及答案
- 向量误差修正(VECM)模型案例分析
- linux终端怎么设置monaco,[Linux]Vim设置Monaco字体Vim颜色模板
- 【线性分类器】(一)线性判别
- Redis高级之——redis-trib.rb命令详解
- 福大软工 · 真 · 最终作业
- 传智杯第四届初赛 B小卡与质数2
- excel表格打印每页都有表头_excel单页表格打印带连续页码的多页
- 又一家美业SaaS+系统宣布停止服务,美业人你怎么看?
- 自学Linux 2—Linux 的系统架构之 Linux 内核的主要模块和 Linux 的文件结构
- springboot整合jsp模板
- JavaSE面向对象