2021羊城杯misc

misc520


时间匆忙就做了一题还没有提交…
是一个经典的usb鼠标流量分析题了
下载题目拿到520个套娃zip,直接7z加连点器提取flag.png
然后放到Stegsolve.jar看到bgr通道里面有一个zip

提取出来发现加密拿去爆破password:12345
又拿到pacp,打开看看是一个鼠标流量就用kali的工具提取一下数据
(USB协议的数据部分在Leftover Capture Data域之中,在Mac和Linux下可以用tshark命令可以将 leftover capture data单独提取出来 命令如下:

1
tshark -r usb1.pcapng -T fields -e usb.capdata > usbdata.txt

)


发现前面有一堆空行和后面也有空行于是去掉空行:

1
cat filename | sed -e '/^$/d' > filename

然后

1
2
3
4
5
6
import re
file = open("output.txt",'w')
with open('usb.txt', 'r') as lines:
for line in lines:
result = re.sub(r"(?<=\w)(?=(?:\w\w)+$)", ":", line)
file.write(result)

变成这种形式

用大佬的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
nums = []
keys = open('output.txt','r')
posx = 0
posy = 0
for line in keys:
if len(line) != 12 :
continue
x = int(line[3:5],16)
y = int(line[6:8],16)
if x > 127 :
x -= 256
if y > 127 :
y -= 256
posx += x
posy += y
btn_flag = int(line[0:2],16) # 1 for left , 2 for right , 0 for nothing
if btn_flag == 1 :
print posx , posy
keys.close()

搞出坐标画图发现是反的,改一下y轴坐标为负即

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
nums = []
keys = open('output.txt','r')
posx = 0
posy = 0
for line in keys:
if len(line) != 12 :
continue
x = int(line[3:5],16)
y = int(line[6:8],16)
if x > 127 :
x -= 256
if y > 127 :
y -= 256
posx += x
posy += y
btn_flag = int(line[0:2],16) # 1 for left , 2 for right , 0 for nothing
if btn_flag == 1 :
print posx , -posy
keys.close()

拿去py2一下得出坐标然后kali下gnupolt和plot “loacl.txt”,得flag

-------------已经到底啦!-------------