USB hack door Reverse Engineering (3 / 12 stap)

Stap 3: Bepaal de descriptoren

De volgende beste ding om te doen nadat u hebt vastgesteld dat de VID/PID is te identificeren van de "descriptor" van het apparaat. Een descriptor is een soort 'menu' van wat het apparaat kan doen en hoe graag het overbrengen van gegevens. In het algemeen, heeft elk apparaat een descriptor. Soms een apparaat heeft meer dan één descriptor en u kunt kiezen welke je maar zijn niet erg vaak, wilt dus we gaan gewoon om het te negeren. Een fantastische manier om de "descriptor" zonder te hoeven schrijven alle software is het uitvoeren van lsusb - vv op een linux computer. Hebben we niet een equivalent gevonden voor Windows of Mac, dus het vinden van een vriend met een Linux computer. (Probeer de "USB-Prober" tool van Apple voor Mac OS X).

Hier is de output van lsusb voor de NUI Motor

Apparaat Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2,00
bDeviceClass 0 (Defined op Interface-niveau)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x045e Microsoft Corp.
idProduct 0x02b0
bcdDevice 1.05
iManufacturer 1 Microsoft
iProduct 2 Xbox NUI Motor
iSerial 0
bNumConfigurations 1
Configuratie-Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 18
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Zelf aangedreven
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor specifieke klasse
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Apparaatstatus: 0x0000
(Bus-aangedreven)
Laten we eens kijken wat we hebben. Daarboven ziet u de VID en PID. Vervolgens zullen we kijken naar bNumConfigurations (hoeveel verschillende descriptoren we hebben) en gelukkig voor ons is het nummer 1. Vervolgens kijken naar de Interface-Descriptor in met name bNumEndpoints die is ingesteld op 0. Dit betekent dat er zijn geen eindpunten.

Eindpunten zijn een soort USB "gegevens pipe" - er zijn 4 soorten:

Bulk eindpunten zijn voor de overdracht van grote hoeveelheden gegevens, zoals een schijfstation. Het is OK als het duurt een beetje langer, maar we grote pakketten willen. Dit eindpunt gaat slechts in één richting (zo te lezen en schrijven dat zou je twee)
Onderbreken eindpunten zijn voor inbrengende kleine hoeveelheden gegevens zeer snel, zoals voor een USB-muis. In dit geval moet het apparaat worden responsieve zodat wij snelle beweging willen. Dit eindpunt gaat slechts in één richting
Isochrone eindpunten zijn voor het overbrengen van een behoorlijke hoeveelheid gegevens waar de gegevens moeten verschijnen op hetzelfde moment en als het niet het moeten gewoon worden geschrapt. Dit is voor dingen zoals Audio en Video waar timing is de sleutel. Dit eindpunt gaat slechts in één richting (dus bidirectionele audio voor hoofdtelefoon en microfoon twee EPs moeten zou)
Controle eindpunten zijn deze rare niet-vrij-an-Endpoint eindpunt. Ze worden gebruikt om te dragen kleine hoeveelheden gegevens te zeggen zet een apparaat in- of uitschakelen. Ze zijn erg 'goedkoop' te ontwikkelen, en elk apparaat heeft een zelfs als zijn niet vermeld.
Bijvoorbeeld, kan een seriële poort hebben twee eindpunten van de Interrupt voor gegevensoverdracht in en uit en vervolgens het eindpunt van een besturingselement voor het instellen van de baud-rate.

Voor meer informatie raden we echt alles op lvr.com over USB te lezen zoals het is complex.

Deze motor apparaat heeft geen eindpunten, maar dat betekent niet dat u niet kunt communiceren met het. Het betekent gewoon dat het alleen een bidirectionele controle eindpunt gebruikt. Dit is niet verrassend, motoren zijn traag en niet vergen veel van de gegevens te controleren.

Contrast dit naar de Video/Camera-apparaat:

Apparaat Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2,00
bDeviceClass 0 (Defined op Interface-niveau)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x045e Microsoft Corp.
idProduct 0x02ae
bcdDevice 1.0b
iManufacturer 2 Microsoft
iProduct 1 Xbox NUI Camera
iSerial 3 A00366A08793039A
bNumConfigurations 1
Configuratie-Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Zelf aangedreven
MaxPower 16mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor specifieke klasse
bInterfaceSubClass 255 Vendor specifieke subklasse
bInterfaceProtocol 255 Vendor specifiek Protocol
iInterface 0
Eindpunt Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Overdrachttype isochrone
Synch typt u geen
Type gebruiksgegevens
wMaxPacketSize 0x0bc0 2 x 960 bytes
bInterval 1
Eindpunt Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Overdrachttype isochrone
Synch typt u geen
Type gebruiksgegevens
wMaxPacketSize 0x0bc0 2 x 960 bytes
bInterval 1
De kwalificatie van het apparaat (voor andere apparaatsnelheid):
bLength 10
bDescriptorType 6
bcdUSB 2,00
bDeviceClass 0 (Defined op Interface-niveau)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Apparaatstatus: 0x0001
Zelf aangedreven

Dit apparaat heeft twee isochrone eindpunten die allebei IN type (gegevens gaan op de computer). Dit is logisch: de Kinect heeft een IR diepte camera en een gewone VGA-camera. Twee camera's, twee eindpunten. Natuurlijk, er is ook het eindpunt van een besturingselement dat niet genoemd is hier, het eindpunt van het besturingselement kan worden gebruikt om dingen zoals diafragma, gammacorrectie, een soort van ingebouwd filter, enz.

Gerelateerde Artikelen

Een werkende sleutel van schroot maken door reverse-engineering van een sluis

Een werkende sleutel van schroot maken door reverse-engineering van een sluis

heb je verloren alle sleutels voor uw lock en moeten maken van een nieuwe sleutel van kras?  Heeft de slotenmaker gebrek een lege sleutel die van uw slot Spiebaan passen zal? Pak een metalen bestand, sommige blad schroot, en lees verder voor een ruwe
Reverse-engineering: USB gecontroleerd huisautomatisering houwer

Reverse-engineering: USB gecontroleerd huisautomatisering houwer

Hack een draadloos domoticasysteem te USB gecontroleerd met behulp van twee AVR microcontrollers!Check de video! Het systeem is echt meer responsieve, maar de browser op mijn telefoon is traag.Als je dit leuk vindt, kan u ook als volgt:Stap 1: Vaardi
De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

dit instructable introduceert het eerbiedwaardige spion oor in details en mijn weg naar het omgekeerde ingenieur een circuit.Waarom wordt dit apparaat verdient zijn eigen instructable?:-U kunt kopen een spion oor voor een dollar!-Het kan geluiden ver
Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

In dit instructable, leert u hoe om te keren ingenieur radiofrequentie (RF) afstandsbedieningen en implementeren in een zeer goedkope WiFi toegelaten computer, het knooppunt MCU. Met deze techniek kunt u IoT inschakelen oudere toestellen en doelappar
Reverse-Engineering: RGB LED-lamp met IR afstandsbediening

Reverse-Engineering: RGB LED-lamp met IR afstandsbediening

We 20 van deze RGB LED-lampen gekocht voor een feestje op het werk, maar ik was een beetje teleurgesteld met de kleur vervagen functies die zij verstrekt. Dus besloten heb ik om een apart, omgekeerde ingenieur het IR-protocol, en zien of het had meer
Reverse-Engineering

Reverse-Engineering

veel van de leden hier op Instructables vragen over gegevensbladen of pin-outs van een apparaat of de weergave in de antwoorden, helaas u cant altijd krijgen een gegevensblad en schema's, in deze gevallen heb je slechts één keuze hierop reverse-engin
Reverse-Engineering Live

Reverse-Engineering Live

Ik begon in elektronica vóór de komst van het internet en meest solide staat onderdelen, dus krijgen gegevensbladen en schema's niet makkelijk voor mij was. Vandaag met fabrikanten maken van aangepaste ICs en LCD-schermen voor alles van telefoons tot
Reverse Engineering een kleine versterker

Reverse Engineering een kleine versterker

Mijn andere Instructables op reverse-engineering is op onderdelen die je niet gegevensbladen en pinouts voor. Ik reverse-engineering die een paar circuit boards een week, kleintjes als deze neem me over een dag om te keren ingenieur en strip voor hun
Reverse Engineering een schrikdraad lader

Reverse Engineering een schrikdraad lader

Reverse-engineering iets kunnen een grote vorm van zowel entertainment en onderwijs.  Ik heb vaak inkoopartikelen net voor de bevrediging van de demontage van hen om te bepalen hoe zij functioneren en hoe ze zijn ontworpen.  Langs de weg, kunt u verb
Reverse-Engineering = Uzzors2k = uitgesproken Android App. Amarino spul ook.

Reverse-Engineering = Uzzors2k = uitgesproken Android App. Amarino spul ook.

Dit instructable meestal mensen die proberen te rijden/james bond (morgen nooit sterft natuurlijk) rc auto's zal helpen.  Als je gewoon proberen te zetten lichten, of controle van uw garage met bluetooth van een android telefoon, er zijn vele andere,
PCB Reverse Engineering met behulp van GIMP

PCB Reverse Engineering met behulp van GIMP

er zijn slechts enkele artikelen of gidsen die laat zien hoe u kunt reverse engineering een PCB met behulp van een jpg of png-afbeelding die u hebt of u neemt voor een PCB. Ik probeerde vermeld op deze site, maar ik heb niet succes.Het doel van rever
Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Als u om het even wat als me bent, zou u willen hebben en het nemen van controle over alles op uw computer. U ust kunnen bepalen hoeveel opslag wordt gebruikt voor programma's blah blah blah.Hoewel toepassingen mogelijk nuttig om dingen gedaan te kri
Hoe reverse-engineering van pcb

Hoe reverse-engineering van pcb

PCB reverse-engineering, ook bekend als PCB klonen of PCB kopiëren, reverse engineering technologie op de PCB die werd ontworpen en vervaardigd door anderen wordt gebruikt, is het gebruik van PCB gerelateerde software om te kopiëren van andermans pri
Auto USB Hacking

Auto USB Hacking

In dit ondoorgrondelijke ik zal u tonen hoe maak je een automatische hacken van USB-drive. Dit is mijn eerste tutorial, dus kale met mij.Deze tutorial moet ook worden gebruikt voor juridische en educatieve doeleinden. Ik ben niet verantwoordelijk voo