科技网

当前位置: 首页 >VR

openwrt下tcpdump抓取usb

VR
来源: 作者: 2019-06-08 15:08:46

小儿积食
小孩积食是什么症状
宝宝风寒感冒怎么办

这两天在看USB转串口的驱动,并在想办法解决一个4G设备通过USB插入openwrt后枚举的串口无法收发的问题。看了大概有一个星期了,大概把USB是什么搞清楚了。但是USB的世界实在是太复杂了,除了USB协议本身,枚举出来的设备和系统中的其他总线总是有一腿,才刚接触linux内核的东西,感觉头大,实在不是短时间能啃下来的。好了废话不多说,先看看我处理tcpdump是怎么抓取usb总线数据的吧。

相关软件

openwrt(我用的是bb版本,linux内核3.10.49)

wireshark(我用的最新版本2.2.6)

tcpdump(抓包神奇)

libpcap (tcpdump以来的库)

usbmonitor (usb数据包,就靠它了)

一,编译openwrt支持tcpdump和libpcap

1.1, 在 menuconfig中选择tcpdump和libpacap中的usb

Network--

下面还有一个 tcpdump mini,我没有用,也没管。

1.2, 在menuconfig 中选择usbmointor

Kernel modules---

1.3, 在kernel_menuconig 内核配置中选择usb monitor

Device Drivers --

二,执行make编译

三,下载到目标板

具体的板子不一样,我这里就不写了

四,抓包

终于到了抓包了。

4.1,确认一下你的设备在USB哪个总线上

$ cat /sys/kernel/debug/usb/devices

上面这个bus就表示总线号,Dev#表示设备号。不同的总线对应的usbmonx不一样。例如BUS=1就对应usbmon1,BUS=2对应usbmon2。

4.2,查看tcpdump是否可以检测到usbmonx设备

$ tcpdump bmon1 (USB bus number 1)y (Pseudo-device that captures on all interfaces)

可以看到我这里有usbmon1设备可用了。

4.3,抓取usb数据

$ tcpdump -i usbmon1 -w ap

4.4,好了可以插入你想要抓取的USB设备了,抓取完成后,导出ap

4.5,用wireshark查看usb数据包

将导出的ap文件,用wireshark打开,就可以看看usb交互的数据流程了,看起来已经比较直观了。比起原始的usbmon数据直观很多。

show一下效果

男子自学火熏治疗为女儿治病(图)
阿里路演马云演讲以自我调侃开始引现场大笑
日媒教你充分利用早晨时间成为人生大赢家!

相关推荐