Linux 抓USB包


在windows上有不少抓取USB包的工具,但有种情况程序是基于linux开发的,所以。


这里内核的一个工具usbmon 和 tcpdump,这里在Ubutu下测试,其他嵌入式设备并没有测试,相信只要内核支持了问题就不大。


1. 配置内核

Device Driver   ---->

  [*] USB support  ---> 

  <M>     USB Monitor  

2.加载模块

modprobe usbmon  后者  sudo insmod 路径/usbmon.ko

        mount -t debugfs none_debugs /sys/kernel/debug

检查是否存在目录 /sys/kernel/debug/usb/usbmon

ls /sys/kernel/debug/usb/usbmon

0s  0u  1s  1t  1u  2s  2t  2u  3s  3t  3u

如果总线号是1,则是1u,如果总线号是2,则是2u,依次类推。特殊情况是0u表示监听所有的

lsusb 确认需要监听的usb设备的pid 和vid

cat /sys/kernel/debug/usb/devices

   # cat /sys/kernel/debug/usb/devices 确定你要监视的usb设备所在总线号和设备号
                   #       选择包含有 : Vendor=148f ProdID=5370 Rev= 1.01 的段落
                   #       as follows:
                   #                T:  Bus=01Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
                   #                D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
                   #                P:  Vendor=148f ProdID=5370 Rev= 1.01
                   #                S:  Manufacturer=Ralink
                   #                S:  Product=802.11 n WLAN
                   #                S:  SerialNumber=1.0
                   #                C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=450mA
                   #                I:* If#= 0 Alt= 0 #EPs= 5 Cls=ff(vend.) Sub=ff Prot=ff Driver=rtusbSTA
                   #                E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
                   #                E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
                   #                E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
                   #                E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
                  #                E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
                   #       可以从第一行看到 Bus= 01,设备号是2

根据pid vid 得知 bus 和设备号,从而知道是1u 或者其他的文件


抓包:

cat /sys/kernel/debug/usb/usbmon/2u > ./log.txt

这里需要注意,由于我们的这个抓包命令,只能指定是抓哪个总线上,但同一个总线通常会有很多usb设备的,
如果我们只是关注特定的某个usb设备的话,我自己就需要留意设备地址字段,通过这个字段,我们就可以区分这个传输是不是我们要监听的设备发送出来的。

还有一个tcpdump 工具抓出来的包可以结合wireshark 工具来查看

下载tcpdump工具,

wireshark ,如果嵌入式设备不方面弄这个程序,可以在宿主机上装wireshark

tcpdump -D
1.usbmon1 (USB bus number 1)
2.usbmon2 (USB bus number 2)
3.eth4
4.any (Pseudo-device that captures on all interfaces)
5.lo

我们这里抓取usb2

tcpdump -i usbmon2 -w /data/usblog.pcap &

killall tcpdump

wireshark usblog.pcap 











  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值