抓取 USB 总线LOG
在实际工作中经常会遇到需要分析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...

那么如果我是嵌入式系统,没有lsusb、urb-devices这样的命令怎么办???
好吧! 其实你可以这么看:

如果这个命令也失败了。。。。 那么你需要检查你的系统 usbmon 驱动相关的是否都打开了。
如何分析报文
参见小伙伴写的另一个博客:详解 usbmon 抓取的 log 各字段的含义
抓取 USB 总线LOG的更多相关文章
- 使用 usbmon 抓取 usb 总线上的数据
使用 usbmon 抓取 usb 总线上的数据 usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具.usbmon 本质是一个内核模块,在我的 ubuntu14.0 4中 ...
- 如何抓取崩溃的log日志
4.手机录屏工具的推荐 Andriod:录屏大师,易录屏等等. iOS:AirPlayer,iTools. 5.如何抓取崩溃的log日志? android闪退获取日志方法: 1.下载adb工具包 2. ...
- 高通qxdm抓取sensor的log【学习笔记】
高通qxdm抓取sensor的log 打开qxdm,打开设置界面,去掉其他无关的log,打开Log packets .Message packets的SNS的log 之后需要把端口打开,把端口打开之后 ...
- 抓取崩溃的log日志
1.下载adb工具包 也就是解锁软件,如果要解锁的话,需确认有fastboot 安装jdk.sdk 2.注意事项 请确保电脑上只连接了一台手机设备(最好只连接一条USB线),同时确保手机已开启USB调 ...
- android adb命令 抓取系统各种 log
getLog.bat: adb root adb remount adb wait-for-device adb logcat -v time > C:\log.txt 在Android中不同的 ...
- Wireshark 抓取USB的数据包
需要使用root权限来运行Wireshark,并利用Wireshark来嗅探USB通信数据.当然了,我们并不建议大家利用root权限来进行操作.我们可以使用Linux提供的usbmon来为我们获取和导 ...
- 抓取git的log文件批处理命令示例
@echoset sincedate="2016-04-28 00:00:01" ::变量set beforedate="2016-04-29 00:0 ...
- Android平台抓取native crash log
Android开发中,在Java层可以方便的捕获crashlog,但对于 Native 层的 crashlog 通常无法直接获取,只能通过系统的logcat来分析crash日志. 做过 Linux 和 ...
- linux抓取usb包设置usbmon
随机推荐
- 攻防世界-web(进阶)-upload1
打开链接是一个上传文件的窗口,随便上传一个PDF文件提示必须上传图片,查看源代码,要求必须输入png或jpg格式文件才会上传成功,想到通过修改源代码删除上传限制条件,上传一句话木马,通过中国菜刀进入后 ...
- [netty4][netty-transport]netty之nio传输层
[netty4][netty-transport]netty之nio传输层 nio基本处理逻辑 查看这里 Selector的处理 Selector实例构建 NioEventLoop.openSelec ...
- 4.设置静态IP
由于Ubuntu重启之后,ip很容易改变,可以用以下方式固定ip地址 1.设置ip地址 vi /etc/network/interface # The loopback network interfa ...
- netbox demo
参考链接:https://pypi.org/project/python-netbox/ # python 参考链接 https://ttl255.com/pynetbox-netbox-python ...
- 怎么创建一个良好的Git提交信息
译 原文:https://dev.to/chrissiemhrk/git-commit-message-5e21 提交信息是对提交之前添加和更改的文件所做的更改的简短描述. 良好的提交信息不仅对你 ...
- Java多线程_JUC包下的阻塞队列
在前面我们提到了阻塞队列,也用过了LinkedBolckingQueue队列了,在这里,我们主要对 ArrayBlockingQueue,PriorityBlockingQueue,DelayQueu ...
- ZERO:新手应该如何学习SEO优化
http://www.wocaoseo.com/thread-325-1-1.html 有一个10000小时理论,说是在各行各业,想成为大师级的人物就要付出10000小时的努力,在SEO这边也是如此. ...
- 为什么网站URL需要设置为静态化
http://www.wocaoseo.com/thread-95-1-1.html 为什么网站URL需要静态化?网站url静态化的好处是什么?现在很多网站的链接都是静态规的链接,但是网站 ...
- Cortex-M4的快速memcpy,根据数据对齐情况自动优化,速度为普通memcpy的1.3到5.2倍
代码:https://github.com/gamesun/memcpy_fast memcpy_fast与memcpy速度比较 测试方法 memcpy_fast(dest + a, src + b, ...
- Flink自定义Sink
Flink自定义Sink Flink 自定义Sink,把socket数据流数据转换成对象写入到mysql存储. #创建Student类 public class Student { private i ...