当前位置:网站首页 > 技术博客 > 正文

linux抓包教程



linux下USB抓包和分析流程

在windows下抓取usb包时可以通过wireshark安装时安装USBpcap来实现usb抓包,linux下如何操作呢?
是基于usbmon,本博客简单描述基于usbmon在linux系统上对通过usb口进行发送和接收的数据的抓包流程,分别描述了tcpdump支持usbmon和不支持usbmon的场景下,解析usb数据流的流程。部分系统环境中的tcpdump默认不支持usbmon,而在一般的centos系统和debian系统中是可以支持的。
整体流程图如下:

在这里插入图片描述

1. 挂载debugfs虚拟文件系统用于内核调试
2. 加载usbmon内核模块

sudo modprobe usbmon

3. 查看usbmon监控可以识别到的设备号。如下图,生成了几个usb设备号。
 

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

4. 找出你需要监控的总线编号

通过列举全部的usb/devices设备,确认Manufacturer,Vendor和Product之类的信息中是否有对应的需要监控的设备,这里Bus=02就是我们需要监控的USB总线号,Dev 20就是我们感兴趣的设备节点。

 

注意一个总线上可以有多个设备。

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

(将抓取到的数据保存在 /tmp/usbmon_log.txt中,也是通过 Ctrl+C打断输出)

6. 这里抓取的是原始的usb包,可以通过 tcpdump –D list interface列出所有接口,来确认是否支持通过tcpdump抓取 usbmon的包。

如下输出则意味着可以通过tcpdump来抓取usbmon1/2的包,抓包结果输出到 xxx.pcap中,可以再在wireshark中打开,按照分析windows端抓取的usb包的方式进行解析。

 

通过如下命令进行抓包,然后将 .pcap文件拷贝到windows上,用wireshark打开即可进行解析。这里是暂存到 tmp目录下,也可以暂存到其他目录下。

 
7. 如何解析原始的 usbmon中输出的包格式

如果tcpdump中不支持 usbmon的接口,那么就只能去解析上述usbmon中输出的包格式。

包格式的解析可以参考如下博客:https://www.cnblogs.com/tzj-kernel/p/15256390.html

这里截取了一些关键字段的含义描述

在这里插入图片描述

 

所以这里的第1-2行是一个usb包的描述,第3-4行是另一个usb包的描述,前者是发送数据,后者是接收数据。

8. 如何过滤原始的 usbmon 包

在查看usbmon的数据时,存在较多的无效数据是我们不关心的,一方面是同一总线上其他设备的数据,一方面usb默认的test unit ready 包的请求和回应

可以通过如下的方式对总线上输出的内容进行过滤

 
参考

抓包流程介绍:https://blog.csdn.net/hdmsfhfg1/article/details/
抓包流程介绍:https://blog.csdn.net/faithzzf/article/details/
USBMON格式解析:https://www.kernel.org/doc/Documentation/usb/usbmon.txt
包格式介绍:https://www.cnblogs.com/tzj-kernel/p/15256390.html

版权声明


相关文章:

  • 小红书算法工程师待遇2024-12-10 18:30:04
  • eclipse打断点后怎么运行断点2024-12-10 18:30:04
  • 代码雨制作2024-12-10 18:30:04
  • v4l2 poll2024-12-10 18:30:04
  • java的jdk下载哪个版本最好2024-12-10 18:30:04
  • 三态门作用2024-12-10 18:30:04
  • ofstream用法2024-12-10 18:30:04
  • java内存机制2024-12-10 18:30:04
  • 弹性盒子布局是什么2024-12-10 18:30:04
  • 电脑电子书阅读器软件2024-12-10 18:30:04