openwrt下tcpdump抓取usb数据包
来源:互联网 发布:嗷大喵 知乎 编辑:程序博客网 时间:2024/04/30 06:12
内容原创,未经本人同意请勿转载。联系本人:jianshu_kevin@126.com
这两天在看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--> [*] tcpdumpLibraries--> -*- libpcap--> Configuration---> [*] Include USB support (注意这个一定要选上,否则你别想通过tcpdump抓usb包)
下面还有一个 tcpdump mini,我没有用,也没管。
1.2, 在menuconfig 中选择usbmointor
Kernel modules---> USB support--> [*] kmod-usbmon
1.3, 在kernel_menuconig 内核配置中选择usb monitor
Device Drivers --> [*] USB support ---> <*> USB Monitor
二,执行make编译
三,下载到目标板
具体的板子不一样,我这里就不写了
四,抓包
终于到了抓包了。
4.1,确认一下你的设备在USB哪个总线上
$ cat /sys/kernel/debug/usb/devicesT: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1P: Vendor=80ee ProdID=0021 Rev= 1.00S: Manufacturer=VirtualBoxS: Product=USB TabletC:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mAI:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=(none)E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
上面这个bus就表示总线号,Dev#表示设备号。不同的总线对应的usbmonx不一样。例如BUS=1就对应usbmon1,BUS=2对应usbmon2。
4.2,查看tcpdump是否可以检测到usbmonx设备
$ tcpdump -D1.eth02.br-lan3.usbmon1 (USB bus number 1)4.any (Pseudo-device that captures on all interfaces)5.lo
可以看到我这里有usbmon1设备可用了。
4.3,抓取usb数据
$ tcpdump -i usbmon1 -w usb.pcap
4.4,好了可以插入你想要抓取的USB设备了,抓取完成后,导出usb.pcap
4.5,用wireshark查看usb数据包
将导出的usb.pcap文件,用wireshark打开,就可以看看usb交互的数据流程了,看起来已经比较直观了。比起原始的usbmon数据直观很多。
show一下效果
阅读全文
1 0
- openwrt下tcpdump抓取usb数据包
- tcpdump抓取数据包
- tcpdump抓取网络数据包
- linux下网络数据包抓取工具tcpdump学习小结
- tcpdump抓取无效TCP标志数据包表达式
- Android中使用Tcpdump抓取网络数据包
- Linux使用tcpdump抓取网络数据包示例
- Android中使用tcpdump抓取网络数据包
- 关于android手机端tcpdump抓取数据包
- tcpdump抓取TCP/IP数据包分析
- 利用tcpdump抓取ios的tcp数据包
- tcpdump抓取安卓数据包,wireshark查看
- Linux使用tcpdump抓取网络数据包示例
- 用tcpdump抓取Android的网络数据包
- Linux的抓取网络数据包命令tcpdump
- tcpdump 基于mac地址抓取数据包
- Linux使用tcpdump抓取网络数据包示例
- 使用tcpdump抓取Android系统手机数据包
- JS调用IOS(WebViewJavascriptBridge)和安卓
- java 类总结
- 《星球大战:前线2》预告片发布
- JSP页面数据的前后台简单传递
- 分块入门
- openwrt下tcpdump抓取usb数据包
- Leaflet的make(图标)点击事件的绑定,并且附加其他信息
- MTK LCD屏幕做偏的解决办法(软件)
- NGINX 添加响应头
- android studio 混淆编译注意
- Java学习之定时器
- Cassandra介绍与使用
- svn 服务连接失败
- 解决selenium无法运行testng文件问题