ctfshow学习记录-misc入门(图片篇-文件结构45-49)
目录
- misc45
- misc46
- misc47
- misc48
- misc49
misc45
提示:有时候也需要换一换思维格式
解答:常规做法没有发现信息,题目提示换个格式,之前我们做的题目里除了png,还有:bmp、jpg、gif。大概率是bmp,因为bmp的数值存储方式和排序和其他的都不太一样。
用windows自带的画图软件打开,另为存为bmp格式。
再用binwalk分离得到了flag。
ctfshow{057a722a5587979c34966c2436283e70}
misc46
提示:你见过扶乩吗
解答:打开gif图片后,发现图片在不断的位移,可以考虑这些偏移地址提取出来,看看是否有用。用identity提取gif的信息存储到一个txt文件里。
identify misc46.gif > 46.txt
写段代码把偏移提取出来,并按照gnuplot需要的格式存放到一个txt文件里。
(buuctf里的梅花香之苦寒来也是个画图题,有兴趣的可以看一下。)
arr=[]
with open('46.txt','r') as file:for i in file.readlines():content_list=i.split(' ')arr.append(content_list[3][8:].replace('+',' '))
with open('46_point.txt','w') as result:for i in arr:result.write(i+'\n')
#print(arr)
可以在kali里安装个gnuplot。用它画图。
sudo apt-get install gnuplot
垂直反转就是flag,图片不是很清晰,需要调整一下宽度和大小。ctfshow{05906b3be8742a13a93898186bc5802f}
(emmm为什么说扶乩呢?做完题也不理解)
misc47
提示:没见过扶乩,那你知道笔仙吗
解答:和36题类似。直接打开png图片是空白的,用浏览器打开发现和misc46一样是个不断位移的图片,是apng。
可以用TweakPNG看一下,但是它好像只能直接修改图片,没有提供导出这些信息的功能。
写个脚本提取一下。可以看到这个偏移地址都在fcTL中。
先用010导出一下文件十六进制格式。
存储后变成这个格式:
把空格和换行替换为空。
接下来就是开始写脚本啦~
with open('47.txt','r') as file:content=file.read()content_list=content.split('6663544C')[1:]
with open('47_point.txt','w') as result:for i in content_list:result.write(str(int(i[8*3:8*4],16))+' '+str(int(i[8*4:8*5],16))+'\n')
再用gnuplot工具画个图就ok了,记得垂直翻转。
ctfshow{6d51f85b45a0061754a2776a32cf26c4}
misc48
提示:附件的第(Di)七(Qi)题(Ti)中有提示。本题略脑洞,可跳过
解答:图片用010打开,发现有提示。
统计FF的数量,减1。ctfshow{32个字符}
这提示指的是连续的FF的长度-1。
接下来就是用眼瞪,或者各种替换操作之后再写脚本统计。
比如参照misc48先把十六进制数据导出。然后:
---->回车替换为空格
---->FF替换为XX
---->然后正则匹配替换[^X| ]
(这样整个文档只剩下XX和一堆空格)
---->再把连续的两个空格替换为回车
---->单个空格置空
---->回车再转为GG。(各种替换疯狂操作,能直接替换绝不写脚本,哈哈哈哈)
接下来就可以用了
text="太长了就不放上来了"
list=text.split('GG')
for i in list:a=len(i)//2-1if(a>=0):print(str(hex(a))[2:],end='')
最后的flag就是:ctfshow{0cb07add909d0d60a92101a8b5c7223a}
misc49
提示:它们一来就是十六种。本题略脑洞,可跳过
解答:
用010打开发现有很多色块,都是FFE开头。
(emmm提示和wp是怎么联系起来的,这脑洞是我不配了。。)
具体就是提取FFE后面的那个字符。
导出图片的十六进制格式,然后把回车和空格置空另存一下。
最后再写个小脚本获取一下flag。
with open('misc49.txt','r')as file:content=file.read()content_list=content.split('FFE')[1:]
result=""
for i in content_list:result+=i[:1]
flag="ctfshow{"+result.lower()[:32]+'}'
print(flag)
#ctfshow{0c618671a153f5da3948fdb2a2238e44}
ctfshow学习记录-misc入门(图片篇-文件结构45-49)相关推荐
- ctfshow学习记录-web入门(命令执行69-77118)
目录 web69-70 web71 web72 web73-74 web75-76 web77 web118 这一组题肝的很辛苦 web69-70 解答:根据反馈的错误可知highlight_file ...
- ctfshow 做题 MISC入门 模块 41-50
ctfshow 做题 MISC入门 模块 41-50 -- misc41 题目描述: H4ppy Apr1l F001's D4y! 愚人节到了,一群笨蛋往南飞,一会儿排成S字,一会儿排成B字. 直接 ...
- CTF学习之MISC之图片隐写与文档隐写
CTF学习之MISC之图片隐写 隐写术概述 图片隐写技术 图片EXIF信息隐写 图片LSB低位隐写 隐写术(Stega) 隐写术(Steganography,简写Stega) 一门关于信息隐藏的技巧与 ...
- PaddlePaddle深度学习7日入门CV篇Summaries
PaddlePaddle深度学习7日入门CV篇|Summaries 文章目录 PaddlePaddle深度学习7日入门CV篇|Summaries 一.什么是PaddleX? 二.为什么要参加训练营 三 ...
- MongoDB学习记录:入门(一)——五叶草
预热看我之前的文章Node学习记录: mongodb 这个系列旨在系统的学习Mongodb 部分图片来自慕课网mongodb入门截图 学习目标 MongoDB官网:https://www.mongod ...
- 《迅为开发板i.MX8MM 学习记录》——【MIPI篇】Linux 应用程序显示一张图片
文章目录 前言 一.准备工作 1.开发环境 2.文件准备 二.伪代码分析 1.读取图片数据到数组 2.打开DRM设备,创建fb 3.填充framebuffer 三.完整代码 1.app.h 2.app ...
- Java网络爬虫学习记录(请求基础篇)
目录 个人实验遇见错误集: 一.javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX ...
- 学习记录635@python图片人脸识别算法
概述 对图片进行训练,达到人脸识别的目的. 其实就是对图片建立分类的算法,输入图片得到标签,这个标签就是名字. 其实核心是将图片数字化,其次才是建立KNN算法. 图片数字化首先将图片进行灰度处理,在进 ...
- 【Python学习记录——从入门到放弃】八、类(下)
给子类定义属性和方法 class Car():def __init__(self, make, model, year,odometer_reading=0):self.make = makeself ...
最新文章
- Oracle 12c 多租户 CDB 与 PDB之 shared undo 与 Local undo 切换
- Genymotion与Oracle VM VirtualBox,搭建快速移动应用模拟环境
- 【ZooKeeper Notes 15】Watcher使用的注意事项
- 怎么用Android做登录界面,利用Android怎么制作一个APP登录界面
- 【Matlab】dde23解时滞时延微分方程
- 图像处理学习--前篇--像素相关
- SetForceGroundWindow
- 树莓派3B+运行arm_computer_library
- 20155202《网络对抗》Exp9 web安全基础实践
- 前端学习(1338):mongoDB删除文档
- 前端学习(799):根据位置返回字符
- 关于Java中对于jsp文件的浅认识
- PCL中分割方法的介绍(2)
- mysql的列生成下拉_ComboBox读取数据库生成下拉列表的算法简化
- Node.js 系列翻译---console
- 服务器安全,服务器密码遭篡改
- 云计算需要学什么内容 学完可以胜任哪些岗位
- G.652光纤各个子类的主要区别及应用
- 盘点2018云栖大会的黑科技
- Proguard的介绍