Wireshark-bugs: [Wireshark-bugs] [Bug 9630] New: USB Mass Storage dissector doesn't support the

Date: Thu, 09 Jan 2014 16:19:15 +0000
Bug ID 9630
Summary USB Mass Storage dissector doesn't support the RealTek RTS5129 USB Card Reader Controller (VID=0xda0b/PID=0x2901)
Classification Unclassified
Product Wireshark
Version SVN
Hardware All
OS All
Status UNCONFIRMED
Severity Enhancement
Priority Low
Component Dissection engine (libwireshark)
Assignee [email protected]
Reporter [email protected]

Created attachment 12446 [details]
A USBPCap trace generated against the aforementioned stack, and RealTek's
Windows 8 driver

Build Information:
Version 1.11.2 (SVN Rev 53411 from /trunk)

Copyright 1998-2013 Gerald Combs <[email protected]> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (64-bit) with GTK+ 2.24.14, with Cairo 1.10.2, with Pango 1.30.1, with
GLib 2.34.1, with WinPcap (4_1_3), with libz 1.2.5, with SMI 0.4.8, with c-ares
1.9.1, with Lua 5.1, without Python, with GnuTLS 2.12.18, with Gcrypt 1.4.6,
without Kerberos, with GeoIP, with PortAudio V19-devel (built Nov 18 2013),
with
AirPcap.

Running on 64-bit Windows 8, build 9200, with WinPcap version 4.1.3 (packet.dll
version 4.1.0.2980), based on libpcap version 1.0 branch 1_0_rel0b (20091008),
GnuTLS 2.12.18, Gcrypt 1.4.6, without AirPcap.
AMD A6-5200 APU with Radeon(TM) HD Graphics    , with 3529MB of physical
memory.


Built using Microsoft Visual C++ 10.0 build 40219

Wireshark is Open Source Software released under the GNU General Public
License.

Check the man page and http://www.wireshark.org for more information.
--
It seems that despite using the USB Mass Storage Bulk-Only Transport protocol
(bInterfaceProtocol = 0x50, as defined in
http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf) in SCSI
transparent command set (bInterfaceSubClass = 0x06) mode, like most other USB
Mass Storage devices, Wireshark's UMS dissector doesn't work with this device,
since the bInterfaceClass is non-standard (set to 0xff, rather than 0x08):

No.     Time        Source                Destination           Protocol Length
Info
      8 0.001005    1.0                   host                  USB      67    
GET DESCRIPTOR Response CONFIGURATION

Frame 8: 67 bytes on wire (536 bits), 67 bytes captured (536 bits)
    Encapsulation type: USB packets with USBPcap header (153)
    Arrival Time: Jan  9, 2014 13:33:38.359272000 GMT Standard Time
    [Time shift for this packet: 0.000000000 seconds]
    Epoch Time: 1389274418.359272000 seconds
    [Time delta from previous captured frame: 0.000000000 seconds]
    [Time delta from previous displayed frame: 0.000000000 seconds]
    [Time since reference or first frame: 0.001005000 seconds]
    Frame Number: 8
    Frame Length: 67 bytes (536 bits)
    Capture Length: 67 bytes (536 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: usb]
USB URB
    USBPcap pseudoheader length: 28
    IRP ID: 0xfffffa800505bb80
    IRP USBD_STATUS: USBD_STATUS_SUCCESS (0x00000000)
    URB Function: URB_FUNCTION_CONTROL_TRANSFER (0x0008)
    IRP information: 0x01, Direction: PDO -> FDO
        0000 000. = Reserved: 0x00
        .... ...1 = Direction: PDO -> FDO (0x01)
    URB bus id: 4
    Device address: 1
    Endpoint: 0x80, Direction: IN
        1... .... = Direction: IN (1)
        .000 0000 = Endpoint value: 0
    URB transfer type: URB_CONTROL (0x02)
    Packet Data Length: 39
    Control transfer stage: Data (1)
    [Request in: 7]
    [Time from request: 0.000000000 seconds]
    [bInterfaceClass: Unknown (0xffff)]
CONFIGURATION DESCRIPTOR
    bLength: 9
    bDescriptorType: 0x02 (CONFIGURATION)
    wTotalLength: 39
    bNumInterfaces: 1
    bConfigurationValue: 1
    iConfiguration: 4
    Configuration bmAttributes: 0xa0  NOT SELF-POWERED  REMOTE-WAKEUP
        1... .... = Must be 1: Must be 1 for USB 1.1 and higher
        .0.. .... = Self-Powered: This device is powered from the USB bus
        ..1. .... = Remote Wakeup: This device supports REMOTE WAKEUP
    bMaxPower: 250  (500mA)
INTERFACE DESCRIPTOR (0.0): class Vendor Specific
    bLength: 9
    bDescriptorType: 0x04 (INTERFACE)
    bInterfaceNumber: 0
    bAlternateSetting: 0
    bNumEndpoints: 3
    bInterfaceClass: Vendor Specific (0xff)
    bInterfaceSubClass: 0x06
    bInterfaceProtocol: 0x50
    iInterface: 5
ENDPOINT DESCRIPTOR
    bLength: 7
    bDescriptorType: 0x05 (ENDPOINT)
    bEndpointAddress: 0x01  OUT  Endpoint:1
        0... .... = Direction: OUT Endpoint
        .... 0001 = Endpoint Number: 0x01
    bmAttributes: 0x02
        .... ..10 = Transfertype: Bulk-Transfer (0x02)
        .... 00.. = Synchronisationtype: No Sync (0x00)
        ..00 .... = Behaviourtype: Data-Endpoint (0x00)
    wMaxPacketSize: 512
        .... ..10 0000 0000 = Maximum Packet Size: 512
    bInterval: 0
ENDPOINT DESCRIPTOR
    bLength: 7
    bDescriptorType: 0x05 (ENDPOINT)
    bEndpointAddress: 0x82  IN  Endpoint:2
        1... .... = Direction: IN Endpoint
        .... 0010 = Endpoint Number: 0x02
    bmAttributes: 0x02
        .... ..10 = Transfertype: Bulk-Transfer (0x02)
        .... 00.. = Synchronisationtype: No Sync (0x00)
        ..00 .... = Behaviourtype: Data-Endpoint (0x00)
    wMaxPacketSize: 512
        .... ..10 0000 0000 = Maximum Packet Size: 512
    bInterval: 0
ENDPOINT DESCRIPTOR
    bLength: 7
    bDescriptorType: 0x05 (ENDPOINT)
    bEndpointAddress: 0x83  IN  Endpoint:3
        1... .... = Direction: IN Endpoint
        .... 0011 = Endpoint Number: 0x03
    bmAttributes: 0x03
        .... ..11 = Transfertype: Interrupt-Transfer (0x03)
        .... 00.. = Synchronisationtype: No Sync (0x00)
        ..00 .... = Behaviourtype: Data-Endpoint (0x00)
    wMaxPacketSize: 3
        ...0 0... .... .... = Transactions per microframe: 1 (0)
        .... ..00 0000 0011 = Maximum Packet Size: 3
    bInterval: 10

0000  1c 00 80 bb 05 05 80 fa ff ff 00 00 00 00 08 00   ................
0010  01 04 00 01 00 80 02 27 00 00 00 01 09 02 27 00   .......'......'.
0020  01 01 04 a0 fa 09 04 00 00 03 ff 06 50 05 07 05   ............P...
0030  01 02 00 02 00 07 05 82 02 00 02 00 07 05 83 03   ................
0040  03 00 0a                                          ...

It also appears that this device uses a proprietary, undocumented set of SCSI
commands for accessing Secure Digital, and Sony MemoryStick cards - although an
Open Source driver exists at
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/staging/rts5139?id=c0fa05f3dec43d859d12f00d2843c770a12eef30,
and I can provide trace files, if there's interest.

In the meantime, it might be useful to hook USB VID 0xda0b, and PID 0x2901.


You are receiving this mail because:
  • You are watching all bug changes.