哈夫曼树+TTL+密码题

这周又做了几道题,挺有意思的,记录下。
一 .奇怪的TTL
至于什么是TTL,我给大家解释下:IP报文在路由间穿梭的时候每经过一个路由,TTL就会减1,当TTL为0的时候,该报文就会被丢弃。TTL所占的位数是8位,也就是0-255的范围,但是在大多数情况下通常只需要经过很小的跳数就能完成报文的转发,远远比上限255小得多,所以我们可以用TTL值的前两位来进行传输隐藏数据
如:须传送H字符,只需把H字符换成二进制,每两位为一组,每次填充到TTL字段的开头两位并把剩下的6位设置为1(xx111111),这样发4个IP报文即可传送1个字节。(摘抄···)
了解了这些之后开始做题。



打开有两个txt文档
在这里插入图片描述
题目描述如下:
我们截获了一些IP数据报,发现报文头中的TTL值特别可疑,怀疑是通信方嵌入了数据到TTL,我们将这些TTL值提取了出来,你能看出什么端倪吗?
打开文档:

在这里插入图片描述
txt文件里面有很多列ttl值,63,127,191,255
63== 00111111
127==01111111
191==10111111
255==11111111
变得只有前面两位,后面6位不变,如果传输4个就是一字节
使用脚本提取
(大佬的脚本)

fp = open('ttl.txt','r')
a = fp.readlines()
p = []
for i in a:
    p.append(int(i[4:]))
s = ''
for i in p:
    if i == 63:
        a = '00'
    elif i == 127:
        a = '01'
    elif i == 191:
        a = '10'
    elif i == 255:
        a = '11'
    s += a
# print(s)

import binascii
flag = ''
for i in range(0,len(s),8):
    flag += chr(int(s[i:i+8],2))
flag = binascii.unhexlify(flag)
wp = open('res.jpg','wb')
wp.write(flag)
wp.close()
#00111111 63
#01111111 127
#10111111 191
#11111111 255

得到:在这里插入图片描述
写完之后发现只有二维码的一部分,应该是不止一张图,用foremost直接分开就好了,之后用ps拼在一块
foremost下载及使用说明
在这里插入图片描述
得到六张图:在这里插入图片描述
使用PS拼接:在这里插入图片描述WYEP%5DFM~KMYET.png?raw=true)

扫描之后得到如下信息:

key:AutomaticKey 
cipher:fftu{2028mb39927wn1f96o6e12z03j58002p}

应该就是AutoKey那个加密,解密网站
得到flag{2028ab39927df1d96e6a12b03w58002k}
二.哈夫曼树
霍夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的路径长度是从树根到每一结点的路径长度之和,记为WPL=(W1L1+W2L2+W3L3+…+WnLn),N个权值Wi(i=1,2,…n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,…n)。可以证明霍夫曼树的WPL是最小的。


打开题目为:
在这里插入图片描述~7@STVFM44K(%7DD.png?raw=true)由于是小白所以不会写哈夫曼树的脚本,只能自己画了(Q w Q)
想知道咋画点击👉 画法
在这里插入图片描述
之后就自己对照树的结构,左0右1进行查找
在这里插入图片描述CM9K%5D%5DH8YFC%7BE%60S.png?raw=true)
得到flag有两种可能试试就知道那个对了。
三.密码题
打开:在这里插入图片描述E6%5BE%5BM437OU%5DQ%5BXQ6C.png?raw=true)
一看就知道是摩斯密码,解码得:

MORSEISCOOLBUTBACONISCOOLER/CCCDDCDDDC/DDCCCCDDDCDCDCC/CDCDCCDDCDCDDDCDCDDC/
DCCDDCCDDDCCDCC/CCDCDCDDDCDCDCCDCCCD/CCDCDCCDCCCDDCDCCCDCCCDCC/DDCCDCCDDCC
DCCCCCCCCCCDDDDDCCCCCCCCCDDCDCCCCCDCDCCCDDDCDDCCDCDDCDDCDDDDCDDCCDCCC

根据前面的提示为发现后面培根密码,根据培根密码的格式将CD转化为AB

/AAABBABBBA/BBAAAABBBABABAA/ABABAABBABABBBABABBA/BAABBAABBBAABAA/AABABABBBABABAAB
AAAB/AABABAABAAABBABAAABAAABAA/BBAABAABBAABAAAAAAAAAABBBBBAAAAAAAAABBABAAAAABAB
AAABBBABBAABABBABBABBBBABBAABAAA

解得:DO YOU KNOW THE FOUR FENCE ZGIAHYANAUOZNXWI
英语不太好,百度翻译得:你知道四道栅栏吗?
再接着着解栅栏密码 (每组次数为4):ZHANGYUXIAOWANZI
终于解完了,最后的提交格式弄了半小时,太坑了。。。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2058751973@qq.com

×

喜欢就点赞,疼爱就打赏