usb鼠标流量
最近在研究鼠标流量,找到如下的文章:
https://www.cnblogs.com/hackxf/p/10670844.html
根据这个师傅的说法,不同的鼠标抓到的流量不一样,一般的鼠标流量是四个字节,第一个字节表示按键指示左键右键,第二个字节表示水平位移,为正(小于127)是向右移动,为负(补码负数,大于127小于255)是向左移动。第三个字节表示垂直位移,为正(小于127)是向上移动,为负(补码负数,大于127小于255)是向下移动。事实上,起作用的只是三个相邻的字节。
然而,有些鼠标的流量似乎不那么标准,比如上面那个师傅,他抓出来的流量是8字节的,于是他就取了1、2、3字节来进行分析。而我抓到的流量是6字节的。
如下图:
经过分析,我对应的起作用的字节是2、3、4字节,稍微修改了下师傅的脚本。
1 | #sniffer.py |
同时在控制台里面运行以下命令出来了结果。
1 | tshark -r test2.pcapng -T fields -e usb.capdata > usbdata.txt |
但是这样的图像出来是反的。
于是我又加了个负号。
1 | #sniffer.py |
图像正了,但还是有倾斜,又反复试了多次,和画图的结果还是不太一样。

经过对比,稍微调整了参数,具体的参数作用注释里面有说明
1 | #sniffer.py |
这下结果就比较接近了。
流量详见附件:
https://download.csdn.net/download/fjh1997/12374482
2. USB键盘流量
usb键盘流量就容易的多,主要起作用的是七个字节(1、3~8)。键盘流量只记录按下的按键。释放按键不进行记录。
在mac os catalina 15上面抓usb流量比较方便
重启Mac,进入恢复模式
在终端里面输入csrutil disable关闭SIP保护
再次重启之后使用命令sudo ifconfig XHC20 up
开启端口之后使用wireshark抓包即可。
1 | BYTE1 -- |
详细的对照表可以去这里看:
https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf
但是在抓包的时候也需要注意一些点同时在抓流量的时候也会遇到一些问题,比如8个字节都是0的USB流量太多以及其他USB设备的流量的干扰,需要用filter“usb.capdata != 00:00:00:00:00:00:00:00 and usb.src == “96.1.1””进行过滤,如下图。
再比如同样一个s没加shift是0000160000000000,加了shift之后是0200160000000000

有些时候也会遇到多个按键一起按的情况,这个时候3~8字节可能会被利用起来。
这里我做了一个实验,输入”hello I’m good“之后查看抓到的流量是什么:
1 | import os |
得到如下结果:
说些什么吧!