Activation Codes and Methods, Hardware Details, Sniffing
Post Reply
jaybreen
Posts: 4
Joined: 17 May 2016, 21:29

D-Link DWR-910

Post by jaybreen » 17 May 2016, 23:34

I need to support the DWR-910 on a non-windows, non-linux platform. It has a vendor id:product id of 2001:a40d. Hee is the lsusb at initial start:
DEVICE DESCRIPTOR:
------------------
Length = 0x12
Descriptor Type = 0x1
USB release in BCD = 0x201
Device Class = 0x0
Device Sub-Class = 0x0
Device Protocol = 0x0
Max Packet Size = 0x40
Vendor ID = 0x2001
Product ID = 0xa40d
Dev release in BCD = 0x228
Manufacturer = 0x1
= 'Mobile Connect'
Product = 0x2
= 'Mobile Connect'
Serial Number = 0x3
= '98647175c3a2'
Number of Configurations = 1

CONFIGURATION DESCRIPTOR: 0
----------------------------
Length = 9
Descriptor Type = 2
Total Length = 32
Number of Interfaces = 1
Configuration Value = 1
Configuration Index = 0
Attributes = 0x80 Bus Powered
Maximum Power = 250

INTERFACE DESCRIPTOR: 0
-----------------------
Length = 9
Descriptor Type = 4
Interface Number = 0
Alternate setting = 0
Number of Endpoints = 2
Interface Class = 8
Interface Sub-Class = 6
Interface Protocol = 80
Interface Index = 4
= 'Mass Storage'

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x81 EP 1 IN
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x1 EP 1 OUT
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 1

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x81 EP 1 IN
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x1 EP 1 OUT
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 1

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x81 EP 1 IN
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0
If anyone has the message string(s) required to get this device to mode switch please let me know.

LOM
Posts: 1404
Joined: 11 Jul 2012, 15:14
Location: Koh Samui, TH

Re: D-Link DLR910

Post by LOM » 18 May 2016, 01:46

I guess it uses the standard eject sequence like so many other D-Link devices with a 2001 vid.
The sequence consists of 2 USB SCSI messages:

5553424312345678000000000000061e000000000000000000000000000000

5553424312345679000000000000061b000000020000000000000000000000

The same can also be done with a cmd line eject of the virtual cdrom created on the device storage interface.
What usb id do you get after the eject?

(I edited the device model number in your post, I assume you meant DWR and not DLR)

jaybreen
Posts: 4
Joined: 17 May 2016, 21:29

Re: D-Link DWR-910

Post by jaybreen » 18 May 2016, 22:30

Thank you for fixing the name. Sending these 2 strings (with a delay - currently 20 seconds between) does not seem to have any effect.

LOM
Posts: 1404
Joined: 11 Jul 2012, 15:14
Location: Koh Samui, TH

Re: D-Link DWR-910

Post by LOM » 19 May 2016, 02:01

Try a command line eject of the created device, in linux that would be:

eject /dev/sr0

(or sr1 if the computer have a built in cd/dvd player)

If that doesn't make it switch then your only option is to use a USB sniffer under Windows and sniff the message(s) being sent.

jaybreen
Posts: 4
Joined: 17 May 2016, 21:29

Re: D-Link DWR-910

Post by jaybreen » 19 May 2016, 02:25

Thanks, unfortunately, the device is in Brazil and I'm in Arizona using rdp and the target system is vxWorks based, so I guess we're out of luck.

jaybreen
Posts: 4
Joined: 17 May 2016, 21:29

Re: D-Link DWR-910

Post by jaybreen » 23 May 2016, 23:03

I tried other 2001 vendor id mode switches and the following does cause a modeswitch to an RNDIS device (unfortunately I need a PPP supporting device)
5553424312345678000000000001061e000000000000000000000000000000
5553424312345679000000000001061b000000020000000000000000000000
The resulting lsusb:
DEVICE DESCRIPTOR:
------------------
Length = 0x12
Descriptor Type = 0x1
USB release in BCD = 0x201
Device Class = 0x0
Device Sub-Class = 0x0
Device Protocol = 0x0
Max Packet Size = 0x40
Vendor ID = 0x2001
Product ID = 0x7e38
Dev release in BCD = 0x228
Manufacturer = 0x1
= 'Mobile Connect'
Product = 0x2
= 'Mobile Connect'
Serial Number = 0x3
= '0123456789ABCDEF'
Number of Configurations = 2

CONFIGURATION DESCRIPTOR: 0
----------------------------
Length = 9
Descriptor Type = 2
Total Length = 98
Number of Interfaces = 3
Configuration Value = 1
Configuration Index = 0
Attributes = 0xa0 Bus Powered
Maximum Power = 250

INTERFACE ASSOCIATION:
-----------------------
Length = 8
First Interface = 0
Interface Count = 2
Class = 224
Sub Class = 1
Function Protocol = 3
Function = 7
= 'RNDIS'


INTERFACE DESCRIPTOR: 0
-----------------------
Length = 9
Descriptor Type = 4
Interface Number = 0
Alternate setting = 0
Number of Endpoints = 1
Interface Class = 224
Interface Sub-Class = 1
Interface Protocol = 3
Interface Index = 5
= 'RNDIS Communications Control'

CDC HEADER:
-----------------------
Length = 5
bcd CDC = 1.16



CDC CALL MANAGEMENT:
-----------------------
Length = 5
Capabilities = 0x0
Data Interface = 1



CDC ACM:
-----------------------
Length = 4
bmCapabilities = 0x0



CDC UNION:
-----------------------
Length = 5
Master Interface = 0
Slave Interface = 1



ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x82 EP 2 IN
Attributes = 0x3 INTR
Max Packet Size = 8
Interval = 9

INTERFACE DESCRIPTOR: 1
-----------------------
Length = 9
Descriptor Type = 4
Interface Number = 1
Alternate setting = 0
Number of Endpoints = 2
Interface Class = 10
Interface Sub-Class = 0
Interface Protocol = 0
Interface Index = 6
= 'RNDIS Ethernet Data'

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x81 EP 1 IN
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x1 EP 1 OUT
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

INTERFACE DESCRIPTOR: 2
-----------------------
Length = 9
Descriptor Type = 4
Interface Number = 2
Alternate setting = 0
Number of Endpoints = 2
Interface Class = 8
Interface Sub-Class = 6
Interface Protocol = 80
Interface Index = 4
= 'Mass Storage'

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x83 EP 3 IN
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x2 EP 2 OUT
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 1

CONFIGURATION DESCRIPTOR: 1
----------------------------
Length = 9
Descriptor Type = 2
Total Length = 103
Number of Interfaces = 3
Configuration Value = 2
Configuration Index = 0
Attributes = 0xa0 Bus Powered
Maximum Power = 250

INTERFACE DESCRIPTOR: 0
-----------------------
Length = 9
Descriptor Type = 4
Interface Number = 0
Alternate setting = 0
Number of Endpoints = 1
Interface Class = 2
Interface Sub-Class = 6
Interface Protocol = 0
Interface Index = 8
= 'CDC Ethernet Control Model (ECM)'

CDC HEADER:
-----------------------
Length = 5
bcd CDC = 1.16



CDC UNION:
-----------------------
Length = 5
Master Interface = 0
Slave Interface = 1



CDC ETHERNET:
-----------------------
Length = 13
MAC Address (index) = 0xa
= '425A176495B3'
Ethernet Statistics = 0x00000000
Max Segment Size = 0x05ea
Number of MC Filters = 0x0000
Number of Power Filters = 0x00



ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x82 EP 2 IN
Attributes = 0x3 INTR
Max Packet Size = 16
Interval = 9

INTERFACE DESCRIPTOR: 1
-----------------------
Length = 9
Descriptor Type = 4
Interface Number = 1
Alternate setting = 0
Number of Endpoints = 0
Interface Class = 10
Interface Sub-Class = 0
Interface Protocol = 0
Interface Index = 0

INTERFACE DESCRIPTOR: 2
-----------------------
Length = 9
Descriptor Type = 4
Interface Number = 1
Alternate setting = 1
Number of Endpoints = 2
Interface Class = 10
Interface Sub-Class = 0
Interface Protocol = 0
Interface Index = 9
= 'CDC Ethernet Data'

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x81 EP 1 IN
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x1 EP 1 OUT
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

INTERFACE DESCRIPTOR: 3
-----------------------
Length = 9
Descriptor Type = 4
Interface Number = 2
Alternate setting = 0
Number of Endpoints = 2
Interface Class = 8
Interface Sub-Class = 6
Interface Protocol = 80
Interface Index = 4
= 'Mass Storage'

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x83 EP 3 IN
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x2 EP 2 OUT
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 1

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x83 EP 3 IN
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x2 EP 2 OUT
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 1

ENDPOINT DESCRIPTOR:
--------------------
Length = 7
Descriptor Type = 5
Endpoint Address = 0x83 EP 3 IN
Attributes = 0x2 BULK
Max Packet Size = 512
Interval = 0

LOM
Posts: 1404
Joined: 11 Jul 2012, 15:14
Location: Koh Samui, TH

Re: D-Link DWR-910

Post by LOM » 24 May 2016, 08:32

jaybreen wrote:I tried other 2001 vendor id mode switches and the following does cause a modeswitch to an RNDIS device (unfortunately I need a PPP supporting device)
5553424312345678000000000001061e000000000000000000000000000000
5553424312345679000000000001061b000000020000000000000000000000
Ok, this is another of those devices which has 2 SCSI LUN's on the storage interface, one for the virtual cd-rom and one for the TF/SD card reader. The cd-rom is on LUN 1 and in order to eject it we need to address LUN 1. A dmesg from a linux computer would have shown this..

DWR-910 has 2 configuration after mode switching, RNDIS as config #1 and CDC_ETHER as config #2.
DWR-910 is a MiFi device and a ppp dialup interface on such devices is as rare as hens teeth.
They must do NAT because they support multiple wifi users and they always have a built-in webserver for configuring the device. They are routers, not simple modems.
There is therefore not much choice of protocols for the USB interface, it must be a ethernet type protocol which is bridged with the wifi and where you'll get a private ip address from the built-in dhcp server.

Post Reply