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

usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具。usbmon 本质是一个内核模块,在我的 ubuntu14.0 4中,模块的位置:/lib/modules/4.4.0-31-generic/kernel/drivers/usb/mon/usbmon.ko。

1、检测内核是否支持 debugfs 文件系统

  linux 系统支持很多类型的文件系统,像 ext3、sysfs、ramfs、tmpfs等文件系统,首先检测内核是否支持 debugfs 文件系统。

  

2、挂载 debugfs 文件系统

  执行 sudo mount -t debugfs none_debugs /sys/kernel/debug 命令,如果提示已经挂载,则下次抓包就无需运行该命令了,表示系统默认会挂载该文件系统。

  

  如上图所示,我的 ubuntu 系统默认已经挂载了 debugfs 文件系统,无需再去手动挂载。

3、确认内核支持 usbmon 模块

  

  如上图所示,目前内核不支持 usbmon 模块,需要手动安装 usbmon 模块。

4、安装 usbmon 模块

  执行 modprobe usbmon 命令,可以看到系统成功安装了 usbmon 这个模块。

  

这里的原理是,usbmon是一个模块,使用 modprobe 安装该模块后,该模块内部调用 debugfs 相关的API,这样在 /sys/kernel/debug/usb 目录下便形成了 usbmon 这个目录。
查看 /sys/kernel/debug/usb/usbmon 目录,发现该目录下有以下内容:0s、0u、1s、1t、1u、2s、2t、2u,其中1代表 bus1,2代表 bus2,0代表所有 usb 总线。

5、监测 usb 总线上的数据

首先需要获取想要监测的设备所在的总线以及设备号。linux 中查看USB设备列表以及USB设备详细信息的两种方法
方法1:执行 lsusb 命令

 lsusb命令参数

  -v:显示usb设备的详细信息
  -t:以树状结构显示usb设备的层次
  -s<总线:设备号>:仅显示指定的总线或设备号的设备
  -d<厂商:产品>:仅显示指定厂商和产品编号的设备

  方法2cat /sys/kernel/debug/usb/devices

然后就可以根据上面的结果,查看 usb 总线上的数据。
  cat /sys/kernel/debug/usb/usbmon/1u | grep "1:005"  // 其中的1:005是根据第4步中确认的,分配给模块的设备号
执行该命令,就可以查看模块所挂载的usb总线上的数据传输。
关于该命令输出的数据所代表的含义,参考我的下一篇博文:详解 usbmon 抓取的 log 各字段的含义

使用 usbmon 抓取 usb 总线上的数据相关推荐

  1. Linux驱动开发: 使用usbmon抓取usb 总线上通信的数据

    一.环境介绍 操作系统: ubuntu18.04 64位 二.usbmon使用方法 2.1 功能介绍 usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具. 当前使用的是 ...

  2. arm linux使用 usbmon 抓取usb总线数据包

    arm linux usb设备工作异常,需要跟踪监视 usb 总线上的数据包.可以使用 usbmon 工具.这需要在内核编译时选择支持 usbmon.可以编译到内核里面,也可以编译成模块单独使用. 1 ...

  3. Linux下抓取usb总线数据

    文章目录 一.概述 二.环境搭建 三.实例与测试 一.概述 本文主要讲述的是在Linux环境下如何抓usb数据,就类似于在Windows环境使用bushound,当然该软件只能抓到应用层的的数据,至于 ...

  4. python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...

    python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07

  5. 远程抓取Linux服务器上的数据包

    首先:准备工作,按照安装说明,安装以下工具: SSH工具 V3.2.9 官方版 / SSH工具下载 (Linux服务器抓包工具) Wireshark (抓包工具,在此主要用于分析通过SSH工具发送指令 ...

  6. 小试Python——爬虫抓取大众点评上的数据

    前言 我开通了一个微信公共号"王和阳的航海日志",在上面记录着自己的学习.思考.实践和成长的过程,欢迎关注.交流和拍砖. 碎碎念:某一天一个妹子突然说要让我帮她写个爬虫,貌似在她眼 ...

  7. 详解usbmon抓取的log各字段的含义

    详解 usbmon 抓取的 log 各字段的含义 在上篇文章中,我们已经介绍了如何在 linux 下使用 usbmon 抓取 usb 总线上数据的方法.(https://www.cnblogs.com ...

  8. 逻辑分析仪抓取CAN总线波特率

    1.参考前一篇文章:辑分析仪抓取CAN总线数据. 2.在抓取的波形中找出最小的一个脉宽,测出其波特率. 如图: 最小脉冲宽度为4us,对应波特率为250Kbps,跟程序中设置的波特率一致.

  9. 使用Fiddler抓取夜神模拟器上的包

    一.设置Fiddler代理 1.点击Tools-Fiddler Options进入Fiddler Options页面 2.点击Connections,将Fiddler listens on port设 ...

最新文章

  1. Linux基础命令---添加/删除组
  2. springboot使用jdbc连接mysql数据库
  3. 【leetcode】500. Keyboard Row
  4. 深度学习框架之个人见解
  5. 所有编程皆为Web编程
  6. C++ deque 底层原理及 queue、stack 容器的使用详解
  7. php变量的数据类型
  8. 工作中如何做好技术积累
  9. Jeecg-boot 使用心得建议
  10. linux不识别xfs,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  11. 【毕业设计】jsp+sql毕业生招聘系统毕业设计(系统+论文+英文文献+综合材料)
  12. day6Linux命令-设置别名
  13. javascript高级编程(javascript高级编程第四版 pdf)
  14. linux 上如何测速
  15. impala常用函数大全(超详细哦)
  16. 中证500-小盘股预警2015.4.2
  17. 免费邮箱客户端设置方法大全
  18. 端口Banner信息的获取
  19. python输出一首诗_基于循环神经网络(RNN)的古诗生成器
  20. 漫步者和南卡蓝牙耳机哪个好?高性价比蓝牙耳机测评

热门文章

  1. 苹果ppt_我用PPT复制了苹果官网的动画!
  2. 关于Windows_8.1/Windows 7下普通用户运行软件提示需要输入管理员密码解决方法
  3. q t在xmanage键盘错位
  4. 使用51单片机模拟IIC从机,实现主机(51单片机)对模拟从机的读写操作
  5. 新塘系列linux_老司机带你入门新塘N76E003单片机
  6. Android 10.0 11.0 12.0 启动模拟器教程
  7. html将字幕添加到视频链接,rmvb视频字幕怎么添加 如何给rmvb文件替换/制作字幕...
  8. vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel
  9. 怎么实现ABBYY FineReader Pro for Mac的快速激活
  10. 微软基础认证信息汇总