Linux下USB抓包工具UsbMon的使用和包数据格式解析

一、UsbMon的使用步骤

一般linux内核提供了usbmon这个工具,想要启用UsbnMon,必须挂载debugfs并加载usbmon模块;之后确认usbmon是否可用及USB设备所在总线分支,最后使用usbmon抓包并分析;
对应步骤命令如下:

1、挂载debugfs

# mount -t debugfs none_debugs /sys/kernel/debug (这个也可以在内核配置中直接使能挂载);

2、加载usbmon模块

# modprobe usbmon (如果usbmon已编译到内核,本步骤可以忽略,至于modprobe的作用,请参见该博客

3、确认usbmon是否可用

# ls /sys/kernel/debug/usb/usbmon
# 0s 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
说明:
①、数字后面的s/t/u表示抓包保存的数据格式;我们使用u格式,其他2项忽略即可;
②、数字1/2/3分别表示所在的当前平台所拥有的USB总线,调试的usb设备挂在哪条总线下,就用哪个; 那么0数字表示什么含义呢?它表示抓所有总线上的包;

4、确认usb设备挂在哪条总线

运行”cat /proc/bus/usb/devices”, 就会发现设备T开头的行.T行有1个bus字段, Bus=03 说明它在bus3口上;如下所示:
T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0557 ProdID=2004 Rev= 1.00
S: Manufacturer=ATEN
S: Product=UC100KM V2.00

5、使用usbmon抓取通讯数据包

# cat /sys/kernel/debug/usb/usbmon/3u > /tmp/usbmon_log.txt
(将抓取到的数据保存在 /tmp/usbmon_log.txt中)

二、UsbMon抓取的数据包格式解析

  1. 可以参见这篇文章详解usbmon抓取的log各字段的含义

  2. 类似: ffff9bbbaf235b00 1482700625 C Ii:3:001:1 0:2048 1 = 04的字段解析以及Co/Ci / Ii/Io等含义参见以下网址: USB抓包usbmon在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慢慢Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值