Posts 提取二进制数据
Post
Cancel

提取二进制数据

这道题是属于二进制隐藏数据的一种典型案例,在此做个记录

0x0 分析

文本文件中的TTL值只有4种:63/255/127/191,并且根据题目的介绍我们知道数据隐藏在这些值里,那么就比较容易想到的是信息隐藏在二进制中,做个比对就可以发现二进制的前两个值不同

值(D)二进制
6300111111
25511111111
12701111111
19110111111

0x1 脚本提取

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import binascii

tmp =""
ans =""

with open('..\\ttl.txt','r') as f:
    for line in f:
        if int(line[4:]) == 127:
            tmp += '01'
        elif int(line[4:]) == 63:
            tmp += '00'
        elif int(line[4:]) == 255:
            tmp += '11'
        elif int(line[4:]) == 191:
            tmp += '10'

for i in range(0,len(tmp),8):
    ans += chr(int(tmp[i:i+8],2))
ans = binascii.unhexlify(ans)
with open('..\\ans.jpg','wb') as f1:
    f1.write(ans)

f.close()
f1.close()

ox2 步骤

  1. 图片操作 打开图片显示的是残缺的二维码,接着进行对于图片的一些常规处理,发现存在许多图片,我们使用 Stegsolve.jar 进行分离后得到六张二维码片段

  2. 图片拼接 直接使用 Windows系统自带的图片编辑打开,手工进行选择粘贴,拼接后就可以得到完整的二维码图片

  3. 扫码得flag 扫码得到如下信息,看来还没有结束

1
`key:AutomaticKey cipher:fftu{2028mb39927wn1f96o6e12z03j58002p}`
  1. AutoKey Cipher (自动秘钥)密码解密 flag{2028ab39927df1d96e6a12b03e58002e}

0x3 总结

  1. 在提取数据的时候刚开始以为要分两种(前1位和前2位分开提取),但结果是两个值一起保存

  2. 之所以将提取转换后的数据保存为图片,也是因为二进制转成ASCII时发现是 jpg 文件格式

  3. python 脚本中内置函数进制转换

2进制8进制10进制16进制
2进制-bin(int(x,8))bin(int(x,10))bin(int(x,16))
8进制oct(int(x,2))-oct(int(x,10))oct(int(x,16))
10进制int(x,2)int(x,8)-int(x,16)
16进制hex(int(x,2))hex(int(x,8))hex(int(x,10))-
This post is licensed under CC BY 4.0 by the author.

流量分析

USB流量分析

Comments powered by Disqus.