USB Monitor

Monitor, log and analyze your USB devices and applications activity
Add to Cart

USB Sniffer

Non-intrusive software-based USB sniffer, data logger & USB protocol analyzer for Windows.

This software allows you to monitor the data that devices and applications exchange over USB connections. This program helps in development, testing, debugging and analysis of devices, drivers, software and hardware solutions that use USB communications for data exchange. It has complete set of tools and utilities for successful decoding of USB communication protocols and analyzing packets data. The app's various editions include features for browsing, searching, filtering, recording and data playback.

Our software USB analyzer provides you with wide range of data visualization tools for most popular USB protocols and raw USB data. It also offers you the ability to create custom data visualizers, allowing you to explore, parse and decode any USB data and custom protocols in a most convenient way. Universal Serial Bus analyzer includes not only functions for real-time data analysis but also functions for exporting data, recording monitored data into log files and playing back previously recorded files. Advanced features allow you to send control commands to USB devices and automate the workflow with the built-in scripting.

It's entirely a software USB port monitoring and data logging solution that allows you to avoid using expensive and often inconvenient hardware-based USB sniffers.

This USB data snooping software has been developed and constantly improved for more than 18 years. It provides an intuitive user interface, includes detailed documentation with examples and requires no special programming skills to start using it. Download this USB Analyser now and start spying USB data transfers in a few seconds!

How it Works

Sometimes you need to monitor USB transactions performed by user USB application communicating with device driver (via Windows API functions calls) and accessing USB hardware device using standard or vendor-specific USB interfaces. On the USB protocol layer level such debugging tools as USB logic analyzers and oscilloscopes makes almost no sense due to it's low level view. The most applicable tool in this case will be USB Protocol Analyzer where communication data is parsed and decoded from binary raw format into a human-readable form, which allows you to review the exchanged data and perform quick packets analysis.

Our USB protocol analyzer works by installing a filter driver on top of USB host controller driver. The filter driver intercepts all communication between a USB driver and host controller driver and passes intercepted data to the running monitoring session. USB Monitor uses a set of predefined and user-created protocol definition files to parse monitored data, filter them according to specified criteria and process using various data processing modules.

It provides a rich set of USB class-specific visualizers, built-in Statistics module as well as logging module. The latter one can be used to create a detailed log of a monitoring session, which allows postponing session analysis. In addition, a custom data visualizer may be created which will present the essential data to the user in most convenient way. Data in each data visualizer can easily be navigated, searched, copied and exported in various formats.

Virtually every component of the USB Port Monitor may be programmatically controlled by a running script, written in TypeScript (superset of JavaScript).

Download this USB sniffer now and start to trace USB requests in a few seconds!

Functionalities

View USB device stack layout: device objects for each device driver. View USB device descriptor, configuration descriptor, interface descriptor, endpoint descriptor, HID descriptor. View Plug & Play (PnP) related information and more.

Intercept and display traffic passing over USB connections, analyze data transfer protocols between computers and USB devices, analyze USB Host Controllers, USB Hubs and USB Devices activity, view USB device properties, decode class specific usb descriptors and requests, analyze data transmitted via USB interfaces, filter monitored data by type, properties, endpoints, record log files, export raw / structured data, send commands to the device, automate workflow with scripts and more.

Download this USB analyzer and tester now!

Usage Areas

You may successfully use this USB communications viewer and debugger for:

  • Development of USB device drivers
  • USB protocol development, diagnostics / system integration
  • Analyzing of data transferred between any USB device and Windows application
  • Debugging USB software applications or hardware devices
  • Parsing and reverse engineering USB protocols
  • Debugging and testing different USB apps and devices
  • Researching functionality of any third-party software applications and hardware devices
  • Snooping USB communications data, I/O requests and control requests
  • Detecting errors in USB data transmission
  • Exploring & parsing USB device descriptors and properties
  • Transmitting commands to USB HID devices, view responses and test it for failures
  • Testing and troubleshooting USB protocols

OS Support

Our USB data capture software utility supports Windows server and workstation desktop platforms starting from Windows 7 (Windows XP, Vista are supported by old product versions) both 32-bit and 64-bit, including Windows 11, Windows 10 x86 and x64 operating system.

Download this USB port monitoring and analyzing application now!

Supported Devices

You'll find our USB sniffing and analyzing software useful while working with the following USB device classes:

  • Communications & CDC Control (Ethernet adapters, Wi-Fi adapters, modems)
  • Human interface device (HID) (Keyboard, joystick, mouse)
  • Mass storage (MSC or UMS) (Memory card readers, USB flash drives, digital cameras, digital audio players, external drives)
  • Physical Interface Device (PID) (Force feedback joysticks)
  • Audio (Sound cards, speakers, microphone, MIDI)
  • Image (Webcams, scanners)
  • USB hub (Full bandwidth hubs)
  • Printer (Inkjet printers, laser printers, CNC machines)
  • Smart Card (USB smart card readers)
  • Video (Webcams)
  • Audio/Video (AV) (Webcams, TV)
  • Content security (Fingerprint readers)
  • Personal Healthcare (Pulse monitors)
  • Diagnostic Device (USB compliance testing device)
  • Wireless Controller (Bluetooth adapters)
  • Application-specific (IrDA Bridge, Test and Measurement Class (USBTMC), USB DFU (Direct Firmware update))
  • Miscellaneous (ActiveSync devices)

Product natively supports parsing protocol packets of the following device classes: Human Interface Device (HID), Mass Storage, Communication (CDC), Still Image Capture, Media Transfer Protocol (MTP), Audio, Video and vendor specific device class.

Our Software USB logic analyzer will help you to capture URB (USB Request Blocks) and decode data streams of the following devices:

  • PC USB to Serial adapters, USB Ethernet adapters, USB Modems
  • USB microphone, audio device
  • USB webcam, video device
  • USB CD, DVD, Blu-ray Disc, BD players/recorders, Sound Bars and Home Theater Systems
  • USB joysticks, keypads, tablets, mice, bluetooth adapters
  • USB hard disk drives, HDD, USB pen drive (pendrive), memory cards
  • iPod, iPad, Tablets, E-Readers, Mobile phones, Smartphone, Cell Phones, GPS Trackers, GPS Navigators
  • Digital Camcorders, Cameras, Receivers, TV, Projectors and Screens, Printers, MP3 Players, Radios, Amps and Tuners
  • USB Serial (COM) Ports, USB KVM switches, USB TV Tuners, USB Serial converters, USB Bar-code readers
  • USB Networking and Wireless adapters, USB Computer Peripherals
  • Different USB Gadgets

USB Ports Monitor is a most effective software utility for developers, who deal with the following device classes: USB composite devices, USB mass storage / USB drive devices, USB Video / Audio MIDI devices, USB Media Transfer Protocol (MTP) devices, USB Human interface (HID) devices

Data rates support

Our USB dataflow decoding and debugging tool supports parsing data from the USB host controllers on the following data transfer rates:

  • USB 1.0 Low Speed 1.5 Mbit/s, Full Speed 12 Mbit/s
  • USB 2.0 Low Speed 1.5 Mbit/s, Full Speed 12 Mbit/s, Hi-Speed /High Speed 480 Mbit/s
  • USB 3.0 SuperSpeed 5 Gbit/s
  • USB 3.1 SuperSpeed+ 10 Gbit/s
  • USB 3.2 SuperSpeed+ 20 Gbit/s
  • USB4 SuperSpeed+ 40 Gbit/s

HHD Software USB Port Monitor is a non-intrusive software USB protocol analyzer which processes packets in real-time even during high traffic load.

Download this high-performance USB snooper/datalogger and start capturing USB dataflows in a few seconds!

Supported Requests

Using our software USB explorer you can view, decode and analyze all USB requests which flows between USB host controller/USB hub and the USB hardware device during enumeration: USB Request Block (URB), IOCTL, IRP: PNP and Power I/O Request Packets. It captures and displays USB bulk, interrupt, isochronous and control transfers.

There are following requests supported by this USB Sniffer:

  • URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER
  • URB_FUNCTION_ISOCH_TRANSFER
  • URB_FUNCTION_CONTROL_TRANSFER
  • URB_FUNCTION_CONTROL_TRANSFER_EX
  • URB_FUNCTION_GET_INTERFACE
  • URB_FUNCTION_GET_CONFIGURATION
  • URB_FUNCTION_GET_CURRENT_FRAME_NUMBER
  • URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE
  • URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT
  • URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE
  • URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE
  • URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT
  • URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE
  • URB_FUNCTION_SELECT_INTERFACE
  • URB_FUNCTION_SELECT_CONFIGURATION
  • URB_FUNCTION_RESET_PIPE
  • URB_FUNCTION_ABORT_PIPE
  • URB_FUNCTION_GET_PIPE_IO_POLICY
  • URB_FUNCTION_SET_PIPE_IO_POLICY
  • URB_FUNCTION_GET_FRAME_LENGTH
  • URB_FUNCTION_SET_FRAME_LENGTH
  • URB_FUNCTION_SYNC_RESET_PIPE
  • URB_FUNCTION_SYNC_CLEAR_STALL
  • URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL
  • URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL
  • URB_FUNCTION_GET_STATUS_FROM_DEVICE
  • URB_FUNCTION_GET_STATUS_FROM_INTERFACE
  • URB_FUNCTION_GET_STATUS_FROM_ENDPOINT
  • URB_FUNCTION_GET_STATUS_FROM_OTHER
  • URB_FUNCTION_CLASS_DEVICE
  • URB_FUNCTION_CLASS_INTERFACE
  • URB_FUNCTION_CLASS_ENDPOINT
  • URB_FUNCTION_CLASS_OTHER
  • URB_FUNCTION_SET_FEATURE_TO_DEVICE
  • URB_FUNCTION_SET_FEATURE_TO_INTERFACE
  • URB_FUNCTION_SET_FEATURE_TO_ENDPOINT
  • URB_FUNCTION_SET_FEATURE_TO_OTHER
  • URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE
  • URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE
  • URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT
  • URB_FUNCTION_CLEAR_FEATURE_TO_OTHER
  • URB_FUNCTION_VENDOR_DEVICE
  • URB_FUNCTION_VENDOR_INTERFACE
  • URB_FUNCTION_VENDOR_ENDPOINT
  • URB_FUNCTION_VENDOR_OTHER

USB User Mode IOCTL, PNP IRP, Power IRP request groups are also supported by our software USB tracer.

Download this USB data streams viewer/decoder/debugger and start to snoop USB transmissions in a few seconds!

Supported Protocols

Our USB sniffer supports decoding packets data with the following built-in USB protocol parsing modules:

  • USB Mass Storage Protocol packets parser
  • USB Still Image Protocol packets parser
  • USB Media Transfer Protocol (USB MTP) packets parser
  • USB Human Interface Device Protocol (USB HID) packets parser
  • USB Video Protocol packets parser
  • USB Audio Protocol packets parser
  • USB Communications Device (USB CDC) Protocol parser

Additionally, custom databus protocol parser may be easily implemented by creating your own protocol definition files.

Download this USB tracer/data recorder now and start to sniff USB traffic data in a few seconds!

USB Protocol Analyzer Features

  • USB devices & connections real time monitoring

    USB devices & connections real time monitoring

    The USB Monitor detects all connected USB devices and displays them, grouping by device class. Extended information (including descriptors) is provided for each device. This list is automatically updated every time you plug or unplug a USB device.

    The activity of each USB device can be monitored in real time, and highly efficient and carefully optimized data processing algorithms help avoid communication delays. This approach makes our product, in fact, the only nonintrusive software USB protocol analyzer available on the market today.

  • USB data filtering & output customization

    USB data filtering & output customization

    Product offers a generic USB data/descriptors/commands/requests filtering feature, which allows you to configure filtering for different visualizers, create filtering schemes and quickly apply them to different visualizer windows.

    Additionally, you may change the appearance of visual elements for monitored packets in the data visualizers including URB View, Packet View, Communications View, Mass Storage View, HID View, Audio View, Video View, Still Image/ MTP View. No other solution will allow you to adjust your output as flexibly and conveniently as our product.

  • USB data logging & log file playback

    USB data logging & log file playback

    Our product is the only one among all other USB analyzers, which offers you the opportunity not only to monitor the usb communications in real time, but also to record the received data in the log file with the possibility to replay and analyze it later or share it with your colleagues.

    Using our usb communications monitoring solution, you will be able to reproduce arbitrary fragments of previously recorded data on the screen and export it in raw binary or text format.

  • Browsing monitored data, searching for data patterns

    Browsing monitored data, searching for data patterns

    Basic USB Monitor functionality includes the ability to view and navigate monitored USB data. All data visualizers allow a given data pattern to be easily found using the search function. The search may be performed among the whole visualizer contents or among the selected area only.

    Some visualizers also provide advanced searching capabilities, including searching for text in different encodings or binary data and a search with regular expressions.

  • Sniffing data on remote USB devices

    Sniffing data on remote USB devices

    With this unique feature of our product, you can snoop usb data even on remote computers. You install the Device Monitoring Server on your remote computer, connect to it using USB Monitor running on your workstation, then access all the data flowing between USB applications running on the remote computer and USB devices connected to it.

    You can even have multiple simultaneous remote monitoring and recording sessions to a single device from computers in different places around the world.

  • USB data graphical analysis & statistics

    USB data graphical analysis & statistics

    Only our product offers you a truly sophisticated graphical and statistical analysis of data obtained during the monitoring of USB devices activity. You can analyze not only real-time data, but also historical data stored in pre-recorded log files.

    You can inspect the following data parameters: Packets Total/sec, Bytes Total/sec, Bytes Read/sec, Bytes Written/sec, IO Packets/sec. The product allows you to customize the list of data being analyzed, and specify the type and form of the analysis.

  • Packet View: displaying monitored packets in a table

    Packet View: displaying monitored packets in a table

    The Packet View visualizer provides the combination of brief packet information for each monitored packet and in-depth analysis for an individually selected packet. It is structurally divided into two panes.

    The upper pane displays brief information for each monitored packet in a table. The lower pane lists all other supported and installed visualizers which are used to display the individual packet information. Once you select the packet in the upper pane, all its internal fields are decoded and displayed in the visualizers in the lower pane. For example, you may select a HID protocol packet to see it decoded in URB View and HID View visualizers.

  • URB View: displaying monitored USB Request Blocks

    URB View: displaying monitored USB Request Blocks

    The URB View visualizer displays each monitored USB Request Block (URB). It decodes the packet's internal fields, and works in two modes - Basic and Complete. In Basic mode only the main packet fields are decoded and displayed, while some other are available as popup hints. In Complete mode the entire packet is decoded and all accompanying data is provided in Hex/ASCII view.

    The contents of the visualizer can be copied into the Clipboard or exported into the file in various formats. Use the mouse to select the portion to copy/export or leave the selection empty to copy the entire visualizer contents.

  • Structure View: parsing & displaying USB packet data

    Structure View: parsing & displaying USB packet data

    Structure View data visualizer is a two-part window. First part displays each monitored packet parsed according to specified set of protocols. Second part displays raw packet contents. Cursor navigation may be synchronized between two parts. Each packet is matched against one or more of loaded protocol definition files and all protocol fields are shown in the top part of the visualizer. For each field, its name, value, starting address and size are displayed. If field consists of other fields, you may expand it.

    Visualizer supports configuring protocol-based filtering (aka Display Filter) and allows changing of the root protocol.

  • Raw Data View: displaying raw packet data

    Raw Data View: displaying raw packet data

    The visualizer has two windows, one of which displays data sent to the USB device, and another one displays data received from the USB device.

    All subsequent packets are concatenated into a single data stream, which is displayed as sequence of hexadecimal, decimal, octal, binary data and text. Alternatively, the stream may be displayed as a sequence of floating-point numbers with single or double precision.

    The data visualizer is extremely flexible and allows you to customize both its layout and appearance.

  • HID View: parsing of Human Interface Device (HID) packets

    HID View: parsing of Human Interface Device (HID) packets

    The HID View visualizer parses and displays the contents of the HID report descriptors and HID-specific requests. This visualizer works in two modes: HID View and Report View.

    In HID View mode the visualizer displays parsed HID Report descriptor and brief description for each monitored HID packet. In Report View, the most detailed information for each monitored packet is displayed.

  • Still Image View: parsing of USB Still Image and MTP packets

    Still Image View: parsing of USB Still Image and MTP packets

    The Still Image/MTP View visualizer parses and displays the commands and data exchanged between device and host over USB Still Image and MTP protocols. These protocols are used by digital still photography devices.

    The complete PIMA 15740 command set is supported, all PIMA 15740 operations, responses and events are decoded and displayed.

  • Mass Storage View: parsing of USB Mass Storage packets

    Mass Storage View: parsing of USB Mass Storage packets

    Works with USB Mass Storage Bulk-Only device class and subclass. Specific commands from USB Mass Storage CBI are also supported. There are two modes of operation: Mass Storage Level and Command Level. In first mode it parses Mass Storage-specific structures, and in the second mode it parses commands exchanged between the host and device.

    The following command sets are supported: SCSI Primary Command Set 2 (SPC2), SCSI Multimedia Command Set 2 (MMC2), SCSI Reduced Block Command Set (RBC)

  • Audio View: parsing of USB Audio packets

    Audio View: parsing of USB Audio packets

    USB Audio visualizer parses packets and descriptors for USB Audio compliant device. The following subclasses are supported: Audio Control (AC) & Audio Streaming (AS). The first one is used to control and change the state of device. The second one is generally used for data transmitting.

    The following control pipe requests are parsed for the audio class device: SET_CUR (0x01), GET_CUR (0x81), SET_MIN (0x02), GET_MIN (0x82), SET_MAX (0x03), GET_MAX (0x83), SET_RES (0x04), GET_RES (0x84), SET_MEM (0x05), GET_MEM (0x85), GET_STAT (0xFF)

  • Video View: parsing of USB Video packets

    Video View: parsing of USB Video packets

    USB Video visualizer parses packets and descriptors for USB Video compliant device. The following subclasses are supported - Video Control (VC) & Video Streaming (VS). The first one is used to control and change the state of device. The second one is generally used for data transmitting.

  • Communications View: parsing of USB Communications packets

    Communications View: parsing of USB Communications packets

    This visualizer decodes USB Communications Class packets and descriptors. The Communication Device Class is a device level definition and is used by the host to properly identify a communication device that may present several different types of interfaces.

  • Capture filter

    Capture filter

    A filter is a single condition which follows the syntax of Protocol Definition expressions. Capture filter can be used to discard entire packets according to specified criteria. It can refer to any field in captured packet and use logical or arithmetic operators.

    You can either select one of the predefined filters or create your own.

  • USB endpoints filtering feature

    USB endpoints filtering feature

    Device Monitoring Studio offers an endpoints filtering feature, which allows you to select endpoints to be filtered using context menu in URB View visualizer.

    Combined with an ability to have as much URB View visualizers as you need, you may open one data visualizer for each endpoint.

  • Raw data exporter

    Raw data exporter

    This exporter parses intercepted USB data according to the loaded set of protocols, applies optional protocol-based filtering and Root Protocol and writes the resulting binary data into the output file. It produces the result identical to the lower part of the Structure View data visualizer, but does not display any UI, writing raw data directly to the file.

  • Text exporter

    Text exporter

    This exporter parses intercepted USB data according to the loaded set of protocols, applies optional protocol-based filtering and Root Protocol and writes the resulting text data into the file. It formats its textual output exactly like the upper part of the Structure View visualizer, but does not display any UI, writing formatted data directly to the file.

  • Custom protocols

    Custom protocols

    USB Monitor comes with a lot of pre-installed protocols. This feature also allows the customer to add the definition of the custom protocol to USB Monitor. After this, the application will start parsing and decoding all matching packets according to custom protocol definition.

  • Custom visualizers

    Custom visualizers

    Custom Visualizer allows the user to create his own visualizer in TypeScript. Custom visualizer receives each packet parsed according to selected protocol and adds one or more text strings to the output. It also defines several visual schemes which may later be customized by the user.

  • Root protocol

    Root protocol

    Root protocol, a feature of Structure View data visualizer, as well as several other components, allows the user to focus on a specific custom protocol frame inside another encapsulating protocol.

  • Multi-source monitoring

    Multi-source monitoring

    This feature supports joining monitored data from multiple USB devices into a single monitoring session. Device Monitoring Studio makes sure packets are correctly sorted and presented through a number of supported data visualizers. Data logging also supports multi-source sessions.

  • HID send: sending HID protocol commands to a device

    HID send: sending HID protocol commands to a device

    HID Send module allows you to directly communicate with USB HID devices. You may query HID device parameters, construct and send HID report packets.

    HID Send module may be controlled with scripting. Being used with custom protocols parsing feature (Custom visualizers) it provides you with automatic event control handler functionality. You may automatically send commands to your device upon receiving specific data.

  • Scripting support

    Scripting support

    The built-in scripting support offers the possibility to control several in-application objects with user-written scripts written in TypeScript (JavaScript superset).

    Being used with custom protocols parsing feature (Custom visualizers) and HID send it provides you with USB protocol automatic event control handler functionality. You may automatically send commands to your device upon receiving specific data.

Our USB Analyzer Advantages

Reliable Supports high data transfer rates without affecting PC performance.
Useful Supports session data logging for replaying back later.
Flexible Allows you to configure the way it displays raw data streams.
Friendly Allows you to tune user interface according to your requirements.
Multitasking Monitors any number of USB devices simultaneously.
Cautious Allows you to save monitored USB data even after session is stopped.

Our USB Analyser Usage Scenarios

  • Debugging USB communications

    While implementing data exchange protocols or developing applications or devices, you may need to monitor what packets are exchanged between applications and devices as well as send them some data. This is the scenario for which our product is best suited. It is the only one that allows you to simultaneously parse data, construct packets, send them to a device depending on the triggering of certain conditions and automate this with scripts. Download the trial version, it is free and does not require registration.

  • Handling USB events

    In our product we offer users not only the ability to create their own visualizers, but also parse USB protocols according to custom protocol definition. This functionality provides users with custom filtering and event tracking solutions based on their own rules. All these functions can be used in combination with the data sending module and scripting. As a result, the user gets an advanced event handling solution at his disposal. Download the trial version, it is free and does not require registration.

  • Reverse engineering USB communications

    If you have a USB device and need to develop a software application for it or have a program and need to develop a device for it, then our product is there to help you. Often, in such cases, you do not have documentation for the device or application and you have to intercept their data, reconstruct the communication protocol and individual packets based on it. Our product has a complete set of tools for this. Download the trial version, it is free and does not require registration.

  • Building integration solutions

    Since our product allows you to parse and log USB data coming from multiple devices connected to the PC or even remote ones using your local on Internet connection, it can be used as a foundation for building various integration solutions. All its operational algorithms are optimized for maximum performance, thus, solutions based on our product can be applicable where others will not give the proper result. Download the trial version, it is free and does not require registration.

USB Port Monitor Tech Specs

General Information
Language:English
First Release:8/12/2003
License Type:Shareware
Additional Downloads & Installation Instructions
System Requirements
OS:
Windows 11 Windows 10 Windows 8.1 Windows 8 Windows 7 Windows Vista Windows XP Windows Server 2022 Windows Server 2019 Windows Server 2016 Windows Server 2012 R2 Windows Server 2012 Windows Server 2008 R2 Windows Server 2008
CPU:Multi-core x86, x64 or ARM64 compatible
Memory:2 GB
Storage:21.761 MB
Release Details
Version:9.03.00.1447
Updated:3/12/2024
View Changes
Size:10.881 MB
Add to Cart
All trademarks and logos mentioned on this page are the property of their respective owners.