WinUSB 应用程序或用户模式驱动程序作为 USB 分析/嗅探器/趋势的过滤器驱动程序

问题描述 投票:0回答:4

对于一些广泛使用 WinUSB API 或用户模式 USB 驱动程序的人来说,有一个问题 - WinUSB API 或用户模式驱动程序是否可以用作 USB 连接的被动观察者,捕获中断通知、控制请求、数据传输等. 不干扰其他应用程序(例如 iTunes),这显然需要同时访问设备,同时我的应用程序正在监视连接并在其上显示数据?

或者您是否必须编写一个内核模式过滤驱动程序并将自己注入到 USB 堆栈中才能实现这一点?

过去,有一些可靠的选项(具体来说是 libusb-win32 和 usbsnoop),尽管它们都是围绕旧的 DDK 而不是 Windows Driver Foundation 构建的,并且不再得到真正的定期支持。因此,我犹豫是否要围绕它们构建一些重要的东西。

windows usb driver sniffer
4个回答
4
投票

您必须编写一个过滤器驱动程序。没有其他方法可以拦截其他设备生成的流量。您可以使用更新版本的 DDK,即 KMDF 来完成此任务。它会让你的生活更轻松。但我认为购买一个硬件总线分析仪会更便宜、更有效。

OSR 有很好的概述。您必须登录才能阅读本文,但如果您打算进行任何内核模式开发,我强烈建议您无论如何都登录。


2
投票
Windows 7 中的核心 USB 驱动程序具有 ETW 跟踪点,因此您可以通过这种方式嗅探流量(博客文章

Windows 7 USB 核心堆栈中的 ETW ),但它有点笨拙,并且有一些限制,例如仅跟踪每个数据包的前 32 个字节。

我制作了一个非常易于使用的USB过滤器驱动程序(KMDF)(恕我直言):

http://code.google.com/p/busdog/


0
投票
USB Sniffer 允许您显示、记录和分析连接到您的 PC 的任何 USB 设备和应用程序之间传输的所有数据。您还可以恢复传输的数据(对于某些文件类型)。

最终的项目包括这样的组件:驱动程序、公共库、GUI。

http://tellmeword.com/5zu2z5


0
投票
对于任何提出这个问题的人,值得注意的是 Wireshark 利用了

https://desowin.org/usbpcap/ 这个目的。

© www.soinside.com 2019 - 2024. All rights reserved.