第一题 进制转换
第二题 摩斯密码
第三题 摩斯密码
第四题 RGB值
第五部分 摩斯密码介绍
杂项第一题: convert
打开1.txt
https://ctf.bugku.com/files/de3b517a9b83b2d35f1a8751e9b80c08/1.txt
里面全是二进制
看到这么多0、1,第一想法就是进行进制转换,将二进制转成10进制或者16进制等,方便下一步操作,由于文件内容较多,在线工具没法转换,写个简单的python脚本跑一下吧:
f1=open('1.txt','r')
#二进制转10进制
oct1=int(f1.read(),2)
#十进制转16进制
hex1=hex(oct1)
#将十六进制文件写入文件
out.txtf2=open('out.txt','w')
f2.write(hex1)
#关闭文件
f1.close()
f2.close()
将1.txt内容保存在桌面
转成十六进制
删除开头的0x,之后将这些十六进制数放到编辑器中
导入这个文件后 发现
文件头 为 52617221 正好为rar文件
那么将他另存为 q.rar
解压后发现一张图片
修改后缀之后,解压得到图片key.jpg,接下就是图片隐写相关的常规操作(查看属性、010 editor、stegsolve等),在图片属性“主题”里面发现一串base64编码的字符串:
ZmxhZ3swMWEyNWVhM2ZkNjM0OWM2ZTYzNWExZDAxOTZlNzVmYn0=
解码,得到flag
flag{01a25ea3fd6349c6e635a1d0196e75fb}
杂项第二题: 听首音乐
下载地址https://pan.baidu.com/share/init?surl=gfvezBl
密码y6gh
看题目是跟音频相关的题目,
下载下来是个压缩包,解压得一个waw文件,点击播放下(电脑先安装了一个Cool Edit)。
导入进去是个波形图,点击播放是段音乐。
发现上方有一串小的波形码放大看下。
和摩尔斯电码的点、划、间隔很相似。猜测是摩尔斯电码
用记事本记录下来是这样的。。。
..... -... -.-. ----. ..--- ..... -........- ----. -.-. -... ----- .---- ---.. ---.. ..-. ..... ..--- . -.... .------... -.. --... ----- ----. ..--- ----. .---- ----. .---- -.-.
每一串码之间的间隔用空格代替
然后emmm找个摩尔斯电码解密的在线网站,或者自己写个脚本跑...
得到5BC925649CB0188F52E617D70929191C
关于音频工具,也可以用Audacity分析
关于摩斯密码:
摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年,发明者有争议,是美国人塞缪尔·莫尔斯或者艾尔菲德·维尔。摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种:点、划、点和划之间的停顿、每个字符之间短的停顿、每个词之间中等的停顿以及句子之间长的停顿。
摩尔斯电码由两种基本信号组成:短促的点信号“·”,读“滴”;保持一定时间的长信号“—”,读“嗒”。间隔时间:滴=1t,嗒=3t,滴嗒间=1t,字符间=3t,单词间=7t。
杂项第三题: ctf练习---摩斯密码
题目:
嘀嗒嘀嗒嘀嗒嘀嗒 时针它不停在转动
-- --- .-. ... .
嘀嗒嘀嗒嘀嗒嘀嗒 小雨它拍打着水花
-.-. --- -.. .
思路:百度一张摩斯密码表,然后根据摩斯密码表把相应的符号翻译出来即可。
翻译后的结果是morsecode
所以答案为wct{morsecode}。
杂项第四题: 好多数值
打开连接: https://ctf.bugku.com/files/093d4073de2c7bfac7466fd166c5d990/1.txt
里面都是255,255
先复制出来
看了大佬的解题思路:
打开文件发现好多行类似255,255,255的数据,直接想到RGB值,估计是画图。
用yafu分解一下因数,yafu自行下载
然后进行爆破
爆破中。
分解因数,有503、61、2
即图像无非503 * 122,1006 * 61,30683 * 2这三个size,可以先排除第三个,即试前两个即可
文件总共61366行,分解一下是122*503,猜测要画一个宽503,高122的图,拿Python写个脚本如下:
import re
from PIL import Image
with open("1.txt", "r") as f:
data = f.readlines()
size = [503, 122]
img = Image.new("RGB", size)
pix = img.load()
for x in range(size[0]):
for y in range(size[1]):
r, g, b =data[x*122+y][:-1].split(',')
pix[x,y] = int(r),int(g), int(b)
img.show()
img.save("flag.bmp")
得到最终flag如图:
flag{youc@n’tseeme}
ps:flag没有空格。。。。。。。。。
RGB值
在电脑中,RGB的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB各有256级亮度,用数字表示为从0、1、2...直到255。注意虽然数字最高是255,但0也是数值之一,因此共256级。
Yafu使用方式
使用方式
1、使用cmd进入yafu的解压目录,输入yafu-x64进入命令行,最常用的命令是factor(n),将n值分解。
factor(需要分解的大数)
2、使用yafu的时候遇到mismatched parens
//这是因为在命令行里不支持过长的位数。
新建一个文件p.txt,内容里写上n的值,最后面一定要换行。
然后运行命令为
yafu-x64 "factor(@)" -batchfile 1.txt
第五部分:摩斯电码介绍
摩尔斯电码
转载
https://morse.supfree.net/
摩尔斯电码定义了包括:英文字母A-Z(无大小写区分)十进制数字0-9,以及“?”“/”“()”“-”“.”很适合英语的通信。至今仍有很多地方在使用。在业余无线电通信中,他是全世界运用统一的电码。下面列出的是基本码表:
字母
数字
标点符号
非英文字符
特殊符号
在推理小说中,密码是非常常见的东西,其中经常使用的、也是最为简单的就是摩斯密码了,这里提供一些相关资料,希望有所帮助。
电报通信的语言是由电码符号组成的。电报通信最早是由美国的摩尔斯在 1844年发明的,所以电码符号也被叫做摩尔斯电码(Morse code)。电码 符号由两种基本信号和不同的间隔时间组成:短促的点信号“ .”,读“ 的 ”(Di);保持一定时间的长信号“─”,读“答 ─”(Da)。
在早期战时电报通信中应用广泛,相信大家在很多战争片中都看到过吧?通讯员对着发报机按个不停,其实是根据一定的规则将发报机的“撞针”与“针板”(这两个都是形象用词)进行接触,从而产生或长或短的电信号。接受方的发报机会将这种电信号翻译成为声音信号比如上面的DIDA。而操作员根据声音转换成密码图形,对照密码表在翻译成文字。而发报者所进行的就是反操作。由于一定程度上属于一种密码,所以如果不知道摩尔斯电码表的人是不能明白其中的意思的。
其他介绍:
摩尔斯电码(英语:Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。是由美国人艾尔菲德·维尔(Alfred Lewis Vail)与萨缪尔·摩尔斯(Samuel Finley Breese Morse)在1836年发明。
摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用0和1两种状态的二进制代码,它的代码包括五种:
1.点(.)
2.划(-)
3.每个字符间短的停顿(在点和划之间的停顿)
4.每个词之间中等的停顿
5.以及句子之间长的停顿
摩尔斯电码字母与数字对应表:
例如:
原文本:I LOVE YOU TOO
加密后:../.-../---/...-/./-.--/---/..-/-/---/---
本文始发于微信公众号(LemonSec):【杂项入门-摩斯密码】
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论