Bugku练习题---MISC---1和0的故事
Bugku练习题---MISC---1和0的故事
flag:flag{QR_c0de_1s_1nterest1n9}
解题步骤:
1、观察题目,下载附件
2、不得不说这道题挺贵的,打开是这个样子的,由0和1组成的字符
3、观察了一会,感觉可能是跟颜色有关,黑白两色,可能是二维码,上脚本解决这道题,脚本如下:
1 import xlwt
2
3 #创建一个xls,需要安装xlwt环境库
4 book = xlwt.Workbook()
5
6 #创建一个样式(黑色填充,无边界)
7 style = xlwt.easyxf('pattern: pattern solid, fore_colour black;font: height 250')
8 #添加一个表单,允许覆盖
9 table=book.add_sheet('flag_code',cell_overwrite_ok=True)
10
11 #打开txt文件,注意文件路径
12 with open( '1和0的故事.txt', 'r' ) as f:
13 qr=f.read()
14
15 qrlist=qr.split("\n")
16
17 #first_col=sheet.col(0)
18
19 m=0
20 for i in qrlist:
21 n=0
22 for j in i:
23 table.col(n).width=256*3
24 if j=='1':#如果是1则在Excel上涂黑
25 table.write(m,n,'',style=style)
26 else:
27 table.write(m,n,'')#如果是0则不涂黑
28 n+=1
29 m+=1
30 book.save('ctfcode.xls')
31 print('over!!')
4、原理是创建一个excel脚本,通过自动化的方式创建表格中的二维码,打开以后效果如下,一定要安装环境库和注意文件的路径
5、二维码最关键的是定位符,这里明显缺少定位符,将定位符补全就可以了,如图所示:
6、扫描二维码,得到答案,解题完成
知乎地址:https://www.zhihu.com/people/yi-kuai-xiao-bing-gan-43-64/posts
CSDN地址:https://blog.csdn.net/liu914589417
欢迎关注评论,耶斯莫拉
Bugku练习题---MISC---1和0的故事的更多相关文章
- Bugku练习题---MISC---蜜雪冰城~
Bugku练习题---MISC---蜜雪冰城~ flag:flag{1251_521_m1xueb1n9chen9ti@nm1mi} 解题步骤: 1.观察题目,下载附件 2.拿到手以后发现有好几个文件 ...
- Bugku练习题---Crypto---聪明的小羊
Bugku练习题---Crypto---聪明的小羊 flag:flag{6fde4163df05d900} 解题步骤: 1.观察题目,下载附件 2.根据题目描述,判断是栅栏密码,位移2位,白给题,上网 ...
- Bugku练习题---Web---计算器
Bugku练习题---Web---计算器 flag:flag{8b4b2f83db2992d17d770be1db965147} 解题步骤: 1.观察题目,打开场景 2.场景打开后发现是一个验证码界面 ...
- Bugku练习题---MISC---easy_nbt
Bugku练习题---MISC---easy_nbt flag:flag{Do_u_kN0w_nbt?} 解题步骤: 1.观察题目,下载附件 2.通过观察题目描述和压缩包中的文件,发现这个好像是MC的 ...
- Bugku练习题---MISC---FileStoragedat
Bugku练习题---MISC---FileStoragedat flag:bugku{WeChatwithSteg0} 解题步骤: 1.观察题目,下载附件 2.下载后发现是一个后缀名为.dat的文件 ...
- Bugku练习题---MISC---啊哒
Bugku练习题---MISC---啊哒 flag:flag{3XiF_iNf0rM@ti0n} 解题步骤: 1.观察题目,下载附件 2.下载以后发现是一张图片,从表面看没有什么有价值的信息 3.直接 ...
- JS-DOM2级封装练习题--点击登录弹出登录对话框
<!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...
- c语言总练习题
!4,42 ?45 1 Description 键盘输入一个双精度数据,乘以2以后输出 Input 输入一个double型数据 Output 输出它的两倍数,结果保留8位小数 Sample Input ...
- MTK 虚拟 sensor bring up (pick up) sensor1.0
pick up bring up sensor1.0 1.pick up对比 2.SCP 1.添加驱动文件 2.添加编译环境(打开开关) 注:编译过程中如果显示内存不够 3.修改底层数据上报方式 3. ...
随机推荐
- git 多人在同一分支上迭代开发时,如何保证分支提交历史保持线性
背景 最近我们组几个同事都投入到了一个新项目,互相之间的功能耦合比较紧密,因此,是打算从master上新拉一个分支,可以理解为我们几个人的开发分支,以develop代替. 一开始,我们是打算像svn那 ...
- 学习廖雪峰的Git教程4--继续学习分支管理
查看分支 git branch -a 查看远程分支 git branch 查看本地分支 创建分支 git checkout -b branch-name 在远程创建一个属于自己的分支 删除分支 删除本 ...
- react单向数据流怎么理解?
React是单向数据流,数据主要从父节点传递到子节点(通过props).如果顶层(父级)的某个props改变了,React会重渲染所有的子节点.
- JavaScript的一些实用操作(逐步添加)
1.js代码简洁高效计时 console.time('a'); //记录时间开始 ... console.timeEnd('a'); //记录时间结束 a: 12857.81103515625ms / ...
- Web,RESTful API 在微服务中的作用是什么?
微服务架构基于一个概念,其中所有服务应该能够彼此交互以构建业务功能.因 此,要实现这一点,每个微服务必须具有接口.这使得 Web API 成为微服务的一 个非常重要的推动者.RESTful API 基 ...
- 启动一个线程是调用 run()还是 start()方法?
启动一个线程是调用 start()方法,使线程所代表的虚拟处理机处于可运行状态, 这意味着它可以由 JVM 调度并执行,这并不意味着线程就会立即运行.run()方 法是线程启动后要进行回调(callb ...
- java中线程池创建的几种方式
java中创建线程池的方式一般有两种: 通过Executors工厂方法创建 通过new ThreadPoolExecutor(int corePoolSize, int maximumPoolSize ...
- elasticsearch 索引数据多了怎么办,如何调优,部署 ?
解答:索引数据的规划,应在前期做好规划,正所谓"设计先行,编码在后", 这样才能有效的避免突如其来的数据激增导致集群处理能力不足引发的线上客户 检索或者其他业务受到影响. 如何调优 ...
- 解决引用类型为什么打出的是地址值,又怎么改成输出属性值(toString()底层)
一丶toString的源码解析: 一丶object的toString的源码解析: 集合中toString源码分析: 小结: 改成输出属性值 在父类中重写toString();方法 快捷键:Alt+In ...
- 顺利通过EMC实验(10)