在实际工作中经常会遇到需要分析USB报文的情形。比如对比不同厂家4G/5G模块。解决实际IP over USB传输效率低下问题。 这时候如果能抓取到 USBMOM 总线的报文将会大有裨益。毕竟所有host(Linux/Windows)与外设(USB)交互的信息都是经由 USB 总线才发送到设备上。

如上,我们计划抓取 USB 总线上的报文信息。但是怎么做呢?

Wireshark

Wireshark 是最简单最熟悉的方案。在Windows 上靠USBPCAP 组件抓USB,这需要在Wireshark 安装时候选择安装上。

在Linux 上依赖于操作系统 USBMON 驱动。Linux 发行版可以直接modprobe -a usbmon来加载 USBMON 驱动(默认不加载),然后打开 Wireshark 就能看到 usbmon1,usbmon2...

如下图,选中设备对应的总线就可以抓了

tcpdump

tcpdump 抓取 USB 报文和抓取网卡语法是一样的, 如下图

在嵌入式设备/Android上这里会有个坑。就是用tcpdump -D能看到 usbmon 节点。但是,执行tcpdump -i usbmon1类似的命令时候会提示 usbmon1 不存在???

这是因为操作系统被裁剪掉了 udev,导致没有生成设备节点。我们可以用mknod命令来手动创建这些节点!

如何确定总线

太简单了!!! 既然要抓LOG,肯定有目标,知道要抓哪个设备的。比如你知道外设的 VID&PID,那么通过 lsusb 就可以看到! 总线1 就是usbmon1,总线 2 就是usbmon2...

那么如果我是嵌入式系统,没有lsusburb-devices这样的命令怎么办???

好吧! 其实你可以这么看:

如果这个命令也失败了。。。。 那么你需要检查你的系统 usbmon 驱动相关的是否都打开了。

如何分析报文

参见小伙伴写的另一个博客:详解 usbmon 抓取的 log 各字段的含义

抓取 USB 总线LOG的更多相关文章

  1. 使用 usbmon 抓取 usb 总线上的数据

    使用 usbmon 抓取 usb 总线上的数据 usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具.usbmon 本质是一个内核模块,在我的 ubuntu14.0 4中 ...

  2. 如何抓取崩溃的log日志

    4.手机录屏工具的推荐 Andriod:录屏大师,易录屏等等. iOS:AirPlayer,iTools. 5.如何抓取崩溃的log日志? android闪退获取日志方法: 1.下载adb工具包 2. ...

  3. 高通qxdm抓取sensor的log【学习笔记】

    高通qxdm抓取sensor的log 打开qxdm,打开设置界面,去掉其他无关的log,打开Log packets .Message packets的SNS的log 之后需要把端口打开,把端口打开之后 ...

  4. 抓取崩溃的log日志

    1.下载adb工具包 也就是解锁软件,如果要解锁的话,需确认有fastboot 安装jdk.sdk 2.注意事项 请确保电脑上只连接了一台手机设备(最好只连接一条USB线),同时确保手机已开启USB调 ...

  5. android adb命令 抓取系统各种 log

    getLog.bat: adb root adb remount adb wait-for-device adb logcat -v time > C:\log.txt 在Android中不同的 ...

  6. Wireshark 抓取USB的数据包

    需要使用root权限来运行Wireshark,并利用Wireshark来嗅探USB通信数据.当然了,我们并不建议大家利用root权限来进行操作.我们可以使用Linux提供的usbmon来为我们获取和导 ...

  7. 抓取git的log文件批处理命令示例

    @echoset sincedate="2016-04-28 00:00:01"          ::变量set beforedate="2016-04-29 00:0 ...

  8. Android平台抓取native crash log

    Android开发中,在Java层可以方便的捕获crashlog,但对于 Native 层的 crashlog 通常无法直接获取,只能通过系统的logcat来分析crash日志. 做过 Linux 和 ...

  9. linux抓取usb包设置usbmon

随机推荐

  1. loading动态效果

    html <div class="loadingcontainer" :style="{display:disp}"> <div class= ...

  2. 使用动态链接为什么还需要静态库lib文件

    在Windows上使用动态链接时,不光需要头文件 .dll文件 还需要一个.lib 文件. 不是动态链接吗?为什么还需要静态库.lib文件? 实际上,这个.lib文件并不是静态库,而是 导入库 文件, ...

  3. chaos;head移植版缺失python27.dll SDL2.dll问题解决

    注意 不要在目录名中有字符' ; '

  4. Linux系统中有趣的命令(可以玩小游戏)

    Linux系统中有趣的命令(可以玩小游戏) 前言 最近,我在看一些关于Linux系统的内容,这里面的内容是真的越学越枯燥,果然学习的过程还是不容易的.记得前几个月初学Linux时,有时候就会碰到小彩蛋 ...

  5. UML活动图(二)

    转载于https://www.cnblogs.com/xiaolongbao-lzh/p/4591953.html 活动图概述 •活动图和交互图是UML中对系统动态方面建模的两种主要形式 •交互图强调 ...

  6. hook框架-frida简单使用模板以及frida相关接口

    一目录结构 ├── test.py #py脚本 └── test.js #js脚本 一.py脚本 test.py import frida import sys #连接设备app dev=frida. ...

  7. Python 源代码代码打包成 whl 文件

    1.检查 python setup.py check 2.打包 python setup.py sdist bdist_wheel || true

  8. phoenix PQS的kerberos相关配置

    thin 客户端的实例代码 jdbc:phoenix:thin:url=<scheme>://<server-hostname>:<port>;authentica ...

  9. Hadoop的SecondaryNameNode的作用是什么?

    为节省篇幅,将SecondaryNameNode简称SNN,NameNode简称NN. NN与fsimage.edits文件 NN负责管理HDFS中所有的元数据,包括但不限于文件/目录结构.文件权限. ...

  10. CF1270B Interesting Subarray 题解

    22:20下晚自习所以只打了10+min,然而这并不能成为我脑抽没一眼看出B题的借口,所以又掉回绿名了qwq.所以我还是太菜了. 题意分析 给出一个数列,要求找出一段连续的子数列满足这个子数列的最大值 ...