Usb sniffer windows 10

Usb sniffer windows 10

Это программы, позволяющие прослушать и декодировать данные, передаваемые по шине USB на интересующее устройство.

Такой инструментарий позволяет отладить программное обеспечение, работающее с USB, разобраться в деталях работы устройства, получить подробную информацию от устройстве USB и т. п.

USBlyzer. Стоит около $200 [1].

USBTrace. Стоит около $195.00 [2].

SnoopyPro-0.22 — бесплатный и весьма толковый снифер [3]. Давно не поддерживается, документация практически отсутствует, но вполне себе работает.

[Как пользоваться Snoopy Pro]

Краткая справка HOWTO, как установить и запустить прослушивание пакетов для произвольного устройства USB.

1. Скачайте архив программы [3]. В архиве один-единственный исполняемый файл SnoopyPro.exe, который не требует установки (очень люблю такие программы!). Распакуйте его в произвольное место (папку) на диске, например в папку c:\Program Files\SnoopyPro.

2. Запустите файл SnoopyPro.exe. Появится окно USB Devices со списком установленных в Windows устройств. Выберите в меню File -> Unpack Drivers, затем выберите File -> Install Service.

3. Выберите в списке интересующее вас устройство (оно должно быть подключено к компьютеру). Устройство проще найти, зная VID и PID устройства. В столбце VID/PID списка текст будет как раз содержать эти VID и PID. К примеру, Ваше устройство имеет VID 0x0B9B и PID 0x4012, тогда строка в списке, соответствующая искомому устройству, будет иметь вид «USB\Vid_0b9b&Pid_4012. «. Щелкните на эту строку правой кнопкой, и выберите Install and Restart.

4. Во втором окне программы SnoopyPro запустится окно лога. Окно лога можно также запустить через меню File -> New. В лог будут накапливаться прослушанные пакеты, и число пакетов в левом верхнем углу пакета будет постоянно увеличиваться.

5. Остановите сбор лога, и тогда Вы сможете его просмотреть. Для остановки сбора лога нажмите кнопку с черным квадратиком.

Собранный лог можно сохранить в файл (File -> Save As. ) или экспортировать в XML (File -> Export. ).

[Free USB Analyzer]

Программа также называется Device Monitoring Studio (т. е. у неё бывают опции для мониторинга не только USB, но и последовательных портов, сети). Опция для мониторинга сети называется USB Monitor.

В бесплатной версии возможности сильно урезаны, но вполне достаточны, чтобы проанализировать обмен пакетами. USB Monitor также имеет 3 платные версии, обладающие дополнительными возможностями.

Установка Free USB Analyzer большой сложности не вызывает благодаря наличию удобного инсталлятора. Однако требуется перезагрузка, и в системе при перезагрузке добавляются значительные изменения. Поэтому рекомендуется перед установкой сделать контрольную точку восстановления системы.

Введение в перехват USB команд с помощью Wireshark

Введение

Недавно у меня на работе возникла задача повторить работу программы настройки одного навигационного устройства и поэтому я стал изучать тему, как можно перехватить данную информацию без полного реверс инжинеринга самого ПО и прошивки устройства. В итоге выяслилось что это можно сделать по средствам перехвата USB трафика, о чем я ниже напишу.

Кратко о USB

USB является хост-ориентированной шиной с топологией многоуровневой звезды. На шине может присутствовать только один хост и до 127 устройств. Каждое устройство может иметь до 32 концевых точек (endpoint) — 16 на приём и 16 на передачу. Все передачи на шине инициирует только хост — устройство может передавать данные только тогда, когда хост запросит их.

Также у USB есть многослойная система протоколов. Самый нижний слой обычно реализован в железе, поэтому он не так важен для нас.

Далее идет транспортный слой, который работает через каналы (pipe). Каналы делятся на:

  • потоковые, которые передают разные данные
  • каналы сообщений, которые используются для управления устройствами, в каждом устройстве минимум один такой канал.
Читайте также:  Mac os pathfinder или

Верхний уровень — это уровень протоколов приложения (или класса в USB терминах), например USB Mass Storage (флэшки) или Human Interface Devices (HID) — устройства для взаимодействия человека с компьютером.

На уровне программного обеспечения, минимальная неделимая единица – трансфер. По типам трансферы бывают следующие:

  • прерывания (interrupt) — передают данные по чуть-чуть в реальном времени, хост не должен тормозить, и эти события не должны потеряться
  • изохронные (isochronous) — работают также как и прерывания, но могут передавать больше данных и могут допускать их потерю, если это не критично
  • пакетные (bulk) — предназначены для больших объёмов
  • управляющие (control) — используются для управления устройствами, и только у них есть жёстко заданный формат запросов и ответов.

Для отправки сообщений устройству используются управляющие трансферы, так как они (единственные из всех) являются двунаправленными и ориентированы на обмен сообщениями, они состоят из 3-х фаз:

  1. Хост предает девайсу пакет с настройками (подобно заголовку сообщения)
  2. Далее передаются данные (аналогично телу сообщения), направление передачи зависит от настроек.
  3. Посылается подтверждение о корректной обработки сообщения, направление противоположно предыдущем из п. 2.

Таким образом для формирования трансфера хост должен знать адрес устройства, которому предназначен трансфер, а также тип, направление и номер концевой точки куда отправляется сообщение.

Пример перехвата USB трафика с Wireshark

Для перехвата USB траффика можно использовать популярный снифер Wireshark. Для Windows также необходимо установит USBPcap.

Запустить прехват можно выбрав соответствующий режим в wireshark:

Разберем подробней пример дампа:

Этот дамп содержит 2 части:

  1. Это подключение физического устройства в USB (пакеты 1-9);
  2. Отправка команд на переключение устройства в другой режим (пакеты 9-16).

Схематично взаимодействие будет выглядеть так:

Как видно из примера взаимодействие с портом USB очень похоже на взаимодействие по сети. Хост всегда отправляет команду, а устройство подтверждает ее получение.

Наибольший интерес вызывают пакеты 9-16, так как видно что это контрольные трансферы (URB_CONTROL) а значит именно с их помощью происходит управление устройствам.

Итак первая команда (пакет 9) отправляет какую-то команду на устройство. Об этом свидетельствует префикс out, так как команды всегда идут от хоста, то перфикс задает напрваление относительно него.

Если посмотреть структуру запроса, то можно понять тип запроса, сам запрос длину тела и сами данные которые отправляются на устройство. В нашем случае не важно что означают эти параметры так как нам нужно просто воспроизвести функциональность стороннего ПО.

Следующий код запрашивает состояние устройства:

Затем отправляется еще одна команда с данными (пакет 13) и еще раз читает состояние (пакет 13), после чего можно заметить что девайс переподключился (пакет 17-18).

Реализация перехваченной функциональности

После анализа дампа понятно какие команды нужно отправить на устройство для воспроизведения работы анализируемого ПО.

Для простоты воспроизведем эти команды с помощью пакета PyUSB.

Скрипт будет выглядеть так:

Также важно отметить что команды отправляются не функцией write как описано в документации, а функцией ctrl_transfer , которая как раз отвечает за работу с контрольными трансферами.

Заключение

По сути анализ работы по USB дампам не сильно отличается от анализа сетевого трафика и если у вас есть минимальный опыт работы c wireshark то вы сможете без проблем разобраться с базовыми вещами не требующими глубокого понимания.

Free USB Analyzer

Free USB Analyzer Overview

Free USB Analyzer is a non-intrusive software USB sniffer and protocol analyzer for Windows.

This software-based USB protocol analyzer allows you to monitor the data transferred between USB applications and devices connected to your computer via USB interfaces. All Windows desktop/server 32-bit and 64-bit platforms starting from Windows Vista are supported.

Our USB monitoring program may be an excellent alternative to hardware analyzers because it intercepts all Windows API function calls which are transferred between USB applications and device drivers, parses transmitted packets and shows all captured data in a several convenient forms, which is virtually impossible for hardware solutions due to their low level view.

Читайте также:  Не копируется папка с жесткого диска windows 10

This Freeware USB data snooping utility requires no additional hardware or cables to operate. It runs smoothly, processes monitored packets in real-time even on high data rates (up to 20 Gbit/s). It allows efficient USB protocol analysis for High Speed USB 2.0, SuperSpeed USB 3.0 and SuperSpeed+ USB 3.x communications.

For the best user experience, our product supports data filtering . Free version supports filtering by USB endpoints and requests. Paid version also supports filtering by parsed protocol fields and provides you with a lot of custom filtering options.

The free version provides all the basic tools for convenient tracing and exploring captured USB data. It includes browsing, searching for specific data patterns and exporting features. Paid version also supports USB data recording (USB data logger function), sending packets to USB HID devices in response to triggered events and allows you to automate workflow with scripts (written in JavaScript or TypeScript).

This USB sniffer helps in developing, debugging, testing and analyzing devices, their drivers, and other software/hardware solutions that exchange data using USB communication protocols.

Download this Free USB Sniffer and trace USB communications in seconds.

How Free USB Analyzer Works

The program installs a filter driver between the USB host controller driver and the device driver and then intercepts all USB Request Blocks (URBs), displaying them to the user in an easily readable format.

This free USB monitoring and analysis utility is designed for efficient interception, capturing and decoding of communication data generated by any USB application and device connected to a local or remote PC via the USB interfaces.

Free USB Analyzer supports advanced data filtering by URB type and USB endpoints.

Capturing and interactively displaying data transferred over a USB connection is now made easy!

Free USB Sniffer Features

With our free USB port monitor you can:

  • View USB device stack layout: device objects for each device driver
  • View USB device descriptor, configuration descriptor, interface descriptor, endpoint descriptor, HID descriptor
  • View USB device properties and Plug & Play (PnP) related information
  • Analyze USB Host Controllers, USB Hubs and USB Devices activity
  • Monitor the bus traffic, decode and display the USB data, filter bus traffic
  • Intercept and view USB control transfers, interrupt transfers, bulk transfers and isochronous transfers
  • Parse and reverse engineer USB protocols, reverse engineer USB devices, drivers and USB applications
  • Capture data streamed via Hi-Speed USB and SuperSpeed Plus USB host controllers
  • Capture data sent to the target Full-Speed USB 2.0 devices
  • Monitor data that flows between device interface and USB interface port
  • Analyze data transfer protocols for local or even remote USB devices

If you are looking for an entirely software-based monitoring solution that facilitates development and debugging of USB devices, drivers and applications, then our Free USB Snooper is exactly what you need. It requires no additional hardware and allows you to debug communication protocol errors, view and test device failures.

Free USB Port Monitor OS support:

Our software Universal Serial Bus Analyzer supports all modern Windows server and desktop platforms starting from Windows Vista x86 and x64 operating systems. Monitoring of USB devices on Windows 10 and Windows Server 2019 are also supported.

Free USB Protocol Analyzer Usage

You can use this USB communications viewer and debugger for:

  • Debugging USB-related software applications and hardware devices
  • USB hardware and device driver development
  • Testing and troubleshooting USB software and hardware
  • Reverse engineering of USB devices, drivers, applications and protocols
  • Capturing and parsing USB descriptors, exploring USB device properties
  • Snooping USB communications data, I/O requests and control requests
  • Exporting device communication data to your hard disk drive or removable media
  • Spying and analyzing remote USB communications, remote data snooping
  • Understanding proprietary databus protocols
  • Researching functionality of any third-party software applications and hardware devices
  • Detecting errors in USB data transmission
  • Testing and troubleshooting USB protocols
Читайте также:  Install windows using usb software

Free USB Protocol Analyzer Target Groups

Free USB protocol analyzer and decoder is an extremely useful tool for the following target groups:

  • USB hardware and software developers
  • IT system integrators and consultants, lab experts
  • Engineers working in the field or in the lab
  • SCADA software system engineers and embedded engineers
  • USB Programmers, testers and IT support specialists
  • Industrial control equipment support personnel
  • USB device developers, manufacturers and vendors
  • Science technicians and university students

View detailed information for our USB sniffer usage scenarios

Free Software USB Analyzer Additional Usage Scenarios

Using this freeware USB explorer you also can:

  • USB driver stack: Device objects associated with each USB device driver used for I/O operations.
  • USB descriptors: USB device descriptor, USB configuration descriptor, USB interface descriptor, USB endpoint descriptor.
  • USB Plug and Play related information: Instance ID, Hardware ID, Software Key and more.
    • USB Request Blocks (URBs) and structures used by device drivers.
    • I/O Request Packets (IRPs) used by PnP.
    • I/O Control Requests (IOCTLs) used by kernel-mode drivers and user-mode applications.
    • Incoming and outgoing data packets flowing through USB interface.
  • You’ll find our Free USB sniffer and protocol analyzer useful while working with the following USB device classes:

    • Audio (Sound card, speaker, microphone, MIDI)
    • Communications and CDC Control (Ethernet adapter, Wi-Fi adapter, modem)
    • Human interface device (HID) (Keyboard, joystick, mouse)
    • Physical Interface Device (PID) (Force feedback joystick)
    • Image (Webcam, scanner)
    • Printer (Inkjet printer, laser printer, CNC machine)
    • Mass storage (MSC or UMS) (Memory card reader, USB flash drive, digital camera, digital audio player, external drive)
    • USB hub (Full bandwidth hub)
    • Smart Card (USB smart card reader)
    • Content security (Fingerprint reader)
    • Video (Webcams)
    • Personal Healthcare (Pulse monitor)
    • Audio/Video (AV) (Webcam, TV)
    • Diagnostic Device (USB compliance testing device)
    • Wireless Controller (Bluetooth adapter)
    • Miscellaneous (ActiveSync devices)
    • Application-specific (IrDA Bridge, Test and Measurement Class (USBTMC) for test and measurement equipment, USB DFU (Direct Firmware update))
    • Vendor-specific device class

    Our Freeware USB Explorer is the most effective tool for developers, dealing with the following device classes:

    • USB composite devices
    • USB mass storage / USB drive devices
    • USB Media Transfer Protocol (MTP) devices
    • USB Human interface (HID) devices
    • USB Video / Audio MIDI devices

    Our Free Software USB Logic Analyzer will help you to capture USB Request Blocks and decode data received from the following USB Devices:

    • USB to Serial adapter, USB Ethernet adapter, USB Modem, USB Serial (COM) Port, USB KVM switch, USB TV Tuner, USB Serial converter, USB Bluetooth adapter, USB Bar-code reader.
    • USB Webcam, Video device, USB Microphone, Audio device.
    • USB CD, DVD, Blu-ray Disc, BD players/recorders, Sound Bars and Home Theater Systems, USB Hard Disk Drives, HDD, USB pen drive (pendrive), USB Memory Cards.
    • USB Joysticks, Keypads, Mice.
    • USB Cameras, Receivers, Digital Camcorders, TV, Projectors and Screens, USB Printers, MP3 Players, Radios, Amps and Tuners.
    • USB Gadgets, iPod, iPad, USB Tablets, E-Readers, Mobile Phones, Smartphone, Cell Phones, GPS Navigators.
    • USB Networking and Wireless adapters, Computer Peripherals, USB Host Controllers and much more.

    Download this Free USB tracer and analyze USB communication bits and bytes in seconds!

    Оцените статью