Single

[HexionCTF]T&J2 min read

群里兰德师傅给的流量分析题。打开一看满满一篇子URB_INTERRUPT。

第一时间想到的是对usb协议的数据部分单独提取出来:

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

是这样的:

emm。。夏风师傅说新版本没有冒号,我才知道为啥和网上别人的不一样。

两两一个,用冒号分割,生成done.txt,脚本如下:

import re
a = open("done.txt",'w+')
for line in open("usbdata.txt"):
    result = re.sub(r"(?<=\w)(?=(?:\w\w)+$)", ":", line)
    a.write(result)
    print(result)

可以使用GNUplot进行绘制轨迹,首先通过awk进行位置坐标转换,将其转为GNUplot可以识别的格式:

awk -F: 'function comp(v){if(v>127)v-=256;return v}{x+=comp(strtonum("0x"$2));y+=comp(strtonum("0x"$3))}$1=="01"{print x,y}' done.txt > click_coordinates.txt

输入gnuplot,然后>plot “click_coordinates.txt”,双引号是必须要加的。

按回车键就可以啦,得到疑似flag的图片,简单再处理下就OK了。