Приложение WinUSB или драйвер пользовательского режима в качестве драйвера фильтра для анализа USB / анализатора / анализа тенденций - PullRequest
4 голосов
/ 30 августа 2009

Вопрос к тем, кто много работал с API-интерфейсами WinUSB или USB-драйверами пользовательского режима - можно ли использовать API-интерфейс WinUSB или драйвер пользовательского режима в качестве пассивного наблюдателя USB-подключений, захвата уведомлений о прерываниях, запросов управления, передачи данных и т. д. без вмешательства в другие приложения (например, iTunes), которые, очевидно, потребуют одновременного доступа к устройству, в то время как мое приложение отслеживает соединение и отображает на нем данные?

Или вам достаточно написать драйвер фильтра режима ядра и внедрить себя в стек USB, чтобы это произошло?

В прошлом было несколько надежных опций (в частности, libusb-win32 и usbsnoop), хотя оба они построены на старом DDK, а не на Windows Driver Foundation, и больше не поддерживаются на регулярной основе. , В результате я не решаюсь построить вокруг них что-то значительное.

Ответы [ 3 ]

4 голосов
/ 01 сентября 2009

Вы должны написать драйвер фильтра. Другого способа перехвата трафика, генерируемого другими устройствами, нет. И вы можете использовать более новые версии DDK, то есть KMDF для этой задачи. Это сделает вашу жизнь проще. Но я думаю, что будет дешевле и эффективнее получить аппаратный анализатор шины.

Есть хороший обзор по OSR . Вы должны войти в систему, чтобы прочитать это, но я настоятельно рекомендую войти в любом случае, если вы собираетесь заниматься разработкой режима ядра.

2 голосов
/ 05 июня 2010

Основные драйверы USB в Windows 7 имеют точки трассировки ETW, поэтому вы можете прослушивать трафик таким образом (сообщение в блоге ETW в базовом стеке USB 7 Windows ), но это немного туповатый и имеет некоторые ограничения, такие как отслеживание только первых 32 байтов каждого пакета.

Я сделал драйвер фильтра USB (KMDF), который довольно прост в использовании (ИМХО): http://code.google.com/p/busdog/

0 голосов
/ 18 июня 2013

USB Sniffer позволяет отображать, записывать и анализировать все данные, передаваемые между любым USB-устройством, подключенным к вашему ПК и приложениям. Также вы можете восстановить перенесенные данные (для некоторых типов файлов).

Приведенный проект включает в себя такие компоненты: Драйвер, Общая библиотека, GUI. http://tellmeword.com/5zu2z5

...