BUUCTF 梅花香之苦寒来 1

BUUCTF:https://buuoj.cn/challenges
在这里插入图片描述

题目描述:
注意:得到的 flag 请包上 flag{} 提交

密文:
下载附件,解压得到一张.jpg图片。
在这里插入图片描述


解题思路:
1、用010 Editor看了一下,刚开始以为是修改宽高的题,没有想到这个方向。(想到也不会做)
在010 Editor中看到,在图片数据的后面附加了很多的无关数据。(“FF D9”为jpg文件结尾)

在这里插入图片描述

2、将这些数据转换一下,看看是什么文件的数据。将全部的灰色数据复制下来,新建一个txt文本,粘贴进去保存。

在这里插入图片描述

在010 Editor中,使用“文件”选项卡的“导入16进制文件”选项,导入刚才新建的txt文件。

在这里插入图片描述

得到一堆坐标数据,接下来尝试将数据转换为图像。

在这里插入图片描述

(这一步其实就是将16进制的数据转换为ASCII字符,使用任意转换工具都可以,这里提供一个python脚本)

在这里插入图片描述

with open('hex.txt', 'r') as h:     # hex.txt为要转换的文本文件val = h.read()h.close()with open('result.txt', 'w') as re: # 转换完成后写入result.txttem = ''for i in range(0, len(val), 2):tem = '0x' + val[i] + val[i+1]tem = int(tem, base=16)print(chr(tem), end="")re.write(chr(tem))re.close()

3、使用gnuplot来进行绘制图像(gnuplot下载地址,提取码:wel5),安装好gnuplot之后,需要去环境变量(查看高级系统设置)里添加变量,然后就可以在命令行里运行gnuplot了。

在这里插入图片描述

4、使用gnuplot之前需要先将坐标数据格式转换成gnuplot可以识别的格式,下面是Python脚本:

with open('result.txt', 'r') as res:  # 坐标格式文件比如(7,7)re = res.read()res.close()with open('gnuplotTxt.txt', 'w') as gnup:  # 将转换后的坐标写入gnuplotTxt.txtre = re.split()tem = ''for i in range(0, len(re)):tem = re[i]tem = tem.lstrip('(')tem = tem.rstrip(')')for j in range(0, len(tem)):if tem[j] == ',':tem = tem[:j] + ' ' + tem[j + 1:]gnup.write(tem + '\n')gnup.close()

转换之后是这样的数据格式。

在这里插入图片描述

5、将gnuplotTxt.txt放到gnuplot.exe的文件夹下,启动gnuplot,在命令行使用如下命令即可绘图。

plot "gnuplotTxt.txt"

在这里插入图片描述

得到一张二维码图片,扫描二维码得到flag。

在这里插入图片描述

在这里插入图片描述

(原来一开始图片属性就有提示)

在这里插入图片描述

flag:

flag{40fc0a979f759c8892f4dc045e28b820}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/207107.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能安全帽作业记录仪赋能智慧工地人脸识别劳务实名制

需求背景 建筑工地是一个安全事故多发的场所。目前,工程建设规模不断扩大,工艺流程纷繁复杂,如何完善现场施工现场管理,控制事故发生频率,保障文明施工一直是施工企业、政府管理部门关注的焦点。尤其随着社会的不断进…

dolphinscheduler有任务一直在运行(问题)目前对数据库解决

dolphinscheduler有任务一直在运行(问题)目前对数据库解决 危害: 这么多的任务没有结束,会涉及很多问题的,系统的数据盘会不断入职日志,数据量很大, 其实对于dolphinscheduler的性能是下降的&a…

【C++容器】优先级队列 仿函数 反向迭代器

优先级队列,仿函数,反向迭代器 优先级队列认识优先级队列模拟实现优先级队列 浅谈仿函数仿函数的大致了解仿函数的实现 反向迭代器什么是反向迭代器?反向迭代器的实现 结语 优先级队列 认识优先级队列 优先级队列(priority_queue…

实现centos7与windows共享文件夹

第一步 点击设置 第二步 第三步 第四步 让共享文件夹挂载到hgfs目录下 输入如下命令: sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtypevmhgfs-fuse,allow_other完成共享

孟德尔随机化 MR入门基础-简明教程-工具变量-暴露

孟德尔随机化(MR)入门介绍和分章分享(暂时不解读) 大家好,孟德尔随机化大火,但是什么是孟德尔随机化,具体怎么实操呢 这没有其他教程的繁冗,我这篇讲最基础的孟德尔随机化的核心步…

数据治理之考评指标类

正则表达式 [] 表述一个字符应该是什么样子 [abc] 表示一个字符可以是a\b\c[a-z] 表示所有小写[a-zA-Z]所有大小写[ a-zA-Z0-9_ ] 所有大小写字母及数字和下划线 -> \w[0-9] \d\s 空格. 表示任意字符 {} 表示有多少个这样的字符 [a-z]{1,10}最少有一个,最多有10…

vs调试输出,不显示线程已退出

如题:一堆线程退出的信息,招人烦。 其实在vs设置里可以关闭: 工具-->选项-->调试-->输出窗口:

2018年全国硕士研究生入学统一考试管理类专业学位联考数学试题——解析版

文章目录 2018 年考研管理类联考数学真题一、问题求解(本大题共 5 小题,每小题 3 分,共 45 分)下列每题给出 5 个选项中,只有一个是符合要求的,请在答题卡上将所选择的字母涂黑。真题(2018-01&a…

记录小白第一次EDUsrc:任意密码漏洞

目录 一、漏洞说明: 二、漏洞复现: 三、漏洞修复建议: 一、漏洞说明: xxxx学院身份认证系统有严重的逻辑设计缺陷:账户登录、手机登录、密码找回三个接口找到n个逻辑漏洞包括任意账号密码修改、信息泄露&#xff0…

【Python大数据笔记_day11_Hadoop进阶之MR和YARNZooKeeper】

MR 单词统计流程 已知文件内容: hadoop hive hadoop spark hive flink hive linux hive mysql ​ input结果: k1(行偏移量) v1(每行文本内容)0 hadoop hive hadoop spark hive 30 flink hive linux hive mysql map结果:k2(split切割后的单词) v2(拼接…

Java注解(Annotation)的基本知识

Java注解(Annotation)的基本知识 此文的目的只在于了解的注解的基本知识,知道注解的一些概念,使能够看懂注解的使用。 注解概述 Java 注解(Annotation)又称 Java 标注,使 JDK5.0 引入的一种注释机制。Java 语言中的…

基于Acconeer的A121-60GHz毫米波雷达传感器SDK移植及测距示例(STM32L496为例)

基于Acconeer的A121-60GHz毫米波雷达传感器SDK移植及测距示例(STM32L496为例) 工程: Keil工程资源 参考资料: A121 datasheet 1.3 A121 HAL Software Integration User Guide A121 STM32CubeIDE User Guide 官方参考示例工程&a…