图源:“西湖论剑”线上赛主页
所以说,近期铺天盖地宣传的“西湖论剑”网络安全技能赛预选已经结束了。在这里随便糊一篇文章(也是我第一次写Write-Up文章),就聊聊杂项最先放出的那个第二题的解法。
首先拿到题,解压,发现里面有“题目描述”,先看描述,是这么写的:
我们截获了一些IP数据报,发现报文头中的TTL值特别可疑,怀疑是通信方嵌入了数据到TTL,我们将这些TTL值提取了出来,你能看出什么端倪吗?
然后看给出的另一个文件,ttl.txt
,里面的内容是这样的:

不难发现TTL值只有 $63$,$127$,$191$,$255$ 四种,都是$2$的某次幂$-1$的值。于是将这四个数都转换成二进制,得到 $111111_2$、$1111111_2$、$10111111_2$、$11111111_2$ 四个二进制数。从后面两个数字可以观察到二进制数的开头两位似乎有关系。又因为TTL值为一个8位整数,进行合理猜想,不妨将不足8位的二进制数开头补0,变为8位后再取开头两位。即:$00111111_2$、$01111111_2$、$10111111_2$、$11111111_2$提取开头两位为:$00_2$、$01_2$、$10_2$、$11_2$,恰好为全排列,可以用于数据的存储。
这样每组两个比特,四组就可以组成一个字节。博客园上也有文章提到了这种数据隐藏方式(点击这里)。