首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wireshark USB过滤

Wireshark USB过滤
EN

Stack Overflow用户
提问于 2022-09-14 10:18:50
回答 1查看 239关注 0票数 0

我使用Wireshark捕获USB流量,以便分析HID设备的描述符。

每次这个HID设备被插入,操作系统将分配一个新的USB端口。所以我不能使用预定义的过滤器。要找到当前的USB端口,我必须排除所有的噪音端口。这非常麻烦;特别是当系统重新启动时,枚举可能会有所不同。

如果我知道设备在某个范围内,是否有更简单的方法来过滤感兴趣的设备?例如"1.50.*“. "1.99.*”。

电流过滤器:

(usb.src != "1.1.0") && (usb.dst != "1.1.0") && (usb.src != "1.2.0") && (usb.dst != "1.2.0") && (usb.src != "1.3.0") && (usb.dst != "1.3.0") && (usb.src != "1.3.2") && (usb.dst != "1.3.2") && (usb.src != "1.4.0") && (usb.dst != "1.4.0") && (usb.src != "1.5.0") && (usb.dst != "1.5.0") && (usb.src != "1.5.1") && (usb.dst != "1.5.1") && (usb.src != "1.6.0") && (usb.dst != "1.6.0") && (usb.src != "1.7.0") && (usb.dst != "1.7.0") && (usb.src != "1.8.0") && (usb.dst != "1.8.0") && (usb.src != "1.8.1") && (usb.dst != "1.8.1") && (usb.src != "1.9.0") && (usb.dst != "1.9.0") && (usb.src != "1.9.1") && (usb.dst != "1.9.1") && (usb.src != "1.9.2") && (usb.dst != "1.9.2") && (usb.src != "1.13.0") && (usb.dst != "1.13.0") && (usb.src != "1.14.0") && (usb.dst != "1.14.0") && (usb.src != "1.23.0") && (usb.dst != "1.23.0")

应用过滤器:

EN

回答 1

Stack Overflow用户

发布于 2022-09-14 13:38:32

起初,我没有意识到usb.srcusb.dst似乎代表常规字符串。可以使用数组索引访问单独的字符。

若要筛选USB端口范围"1.50.*“至”1.59.*“,请执行以下操作:

((usb.src[0] == "1") && (usb.src[1] == ".") && (usb.src[2] == "5") && (usb.src[3] != ".")) || ((usb.dst[0] == "1") && (usb.dst[1] == ".") && (usb.dst[2] == "5") && (usb.dst[3] != "."))

如果将相同的筛选器应用于usb.srcusb.dst,则可以仅使用usb.addr简化表达式。

(usb.addr[0] == "1") && (usb.addr[1] == ".") && (usb.addr[2] == "5") && (usb.addr[3] != ".")

要将USB端口范围"1.50.*“筛选为"1.99.*",可以使用>=<=指定范围:

((usb.src[0] == "1") && (usb.src[1] == ".") && (usb.src[2] >= "5") && (usb.src[2] <= "9") && (usb.src[3] != ".")) || ((usb.dst[0] == "1") && (usb.dst[1] == ".") && (usb.dst[2] >= "5") && (usb.dst[2] <= "9") && (usb.dst[3] != "."))

有趣的是,当使用>=<=时,使用usb.addr的简化形式似乎不起作用。

(usb.addr[0] == "1") && (usb.addr[1] >= ".") && (usb.addr[2] >= "5") && (usb.addr[2] <= "9") && (usb.addr[3] != ".")

您必须用特定的usb.addrusb.dst替换包含>=<=的术语的usb.src。为什么我没发现这件事。

(usb.addr[0] == "1") && (usb.addr[1] == ".") && (((usb.src[2] >= "5") && (usb.src[2] <= "9")) || ((usb.dst[2] >= "5") && (usb.dst[2] <= "9"))) && (usb.addr[3] != ".")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73715190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档