可能有些人使用过WinUSB API或用户模式USB驱动程序的问题 - 可以将WinUSB API或用户模式驱动程序用作USB连接的被动观察者,捕获中断通知,控制请求,数据传输等,而不干扰其他应用程序(如iTunes),显然需要同时访问设备,同时我的应用程序正在监视连接并在其上显示数据?
或者您是否必须编写内核模式过滤器驱动程序并将自己注入USB堆栈以实现此目的?
在过去,有一些可靠的选项(libusb-win32和usbsnoop是具体的)虽然两者都围绕旧的DDK而不是Windows Driver Foundation构建,并且不再定期支持。因此,我犹豫是否要在他们周围建立一些重要的东西。
答案 0 :(得分:4)
您必须编写过滤器驱动程序。没有其他方法可以拦截其他设备生成的流量。您可以使用较新版本的DDK,即KMDF来执行此任务。它会让你的生活更轻松。但我认为只需要一台硬件总线分析仪就会更便宜,更有效。
有a good overview by OSR。您必须登录才能阅读此内容,但如果您打算进行任何内核模式开发,我强烈建议您先登录。
答案 1 :(得分:2)
Windows 7中的核心USB驱动程序具有ETW跟踪点,因此您可以通过这种方式嗅探流量(博客文章 ETW in the Windows 7 USB core stack ),但它有点笨拙且有一些限制,如只跟踪每个数据包的前32个字节。
我制作的USB过滤驱动程序(KMDF)非常易于使用(恕我直言):http://code.google.com/p/busdog/
答案 2 :(得分:0)
USB Sniffer允许您显示,记录和分析连接到PC和应用程序的任何USB设备之间传输的所有数据。您还可以恢复传输的数据(对于某些文件类型)。
结果项目包括以下组件:驱动程序,公共库,GUI。 http://tellmeword.com/5zu2z5