USB hacka genom Reverse Engineering (3 / 12 steg)

Steg 3: Bestäm beskrivare


Det nästa bästa att göra när du har fastställt VID/PID-numret är att identifiera deskriptorn av enheten. En säkerhetsbeskrivning är ett slags "meny" med vad enheten kan göra och hur det gillar att överföra data. Varje enhet har i allmänhet en deskriptor. Ibland en enhet har mer än en deskriptor och du kan välja vilken som du vill men inte fruktansvärt vanligt så vi ska bara ignorera det. Ett fantastiskt sätt att få deskriptorn utan har till skriva någon programvara är att köra lsusb - vv på en linux-dator. Vi har inte hittat en motsvarighet för Windows eller Mac, så hitta en vän med en Linux-dator. (Prova verktyget "USB-Prober" från Apple för Mac OS X.)

Här är resultatet av lsusb för NUI Motor

Enhetsbeskrivningen:
bLength 18
bDescriptorType 1
bcdUSB 2,00
bDeviceClass 0 (definierade på gränssnittet nivå)
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
Konfiguration beskrivningen:
bLength 9
bDescriptorType 2
wTotalLength 18
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Själv drivs
MaxPower 100mA
Interface beskrivningen:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 specifika leverantörsklass
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Enhetsstatus: 0x0000
(Bussen driv)
Låt oss se vad vi har. Du kan se den VID- och PID där uppe. Därefter ska vi titta på bNumConfigurations (hur många olika beskrivningar vi har) och tur för oss är 1. Nästa, titta på gränssnittet deskriptorn i synnerhet bNumEndpoints som är 0. Detta innebär att det finns inga slutpunkter.

Slutpunkter är en typ av USB "data pipe" - det finns 4 typer:

Bulk slutpunkter är för överföring av en hel del data, som en hårddisk. Det är OK om det tar lite längre tid men vi vill att stora paket. Denna slutpunkt går endast i en riktning (så att läsa och skriva du två)
Avbryta slutpunkter är för överlämnande små mängder data mycket snabbt, som för en USB-mus. I det här fallet har enheten vara lyhörd så vi vill ha snabba rörelser. Denna slutpunkt går endast i en riktning
Isokrona slutpunkter med är för att överföra en hel del data där data måste Visa samtidigt och om det inte kan det bör bara släppas. Det är för saker som ljud och Video där timing är nyckel. Denna slutpunkt går endast i en riktning (så dubbelriktat ljud för hörlurar och mikrofon skulle ha två EPs)
Kontrollslutpunkter är här konstiga inte-helt-an-slutpunkten slutpunkt. De används för att överföra små mängder data att säga slå en enhet på eller av. De är väldigt "billigt" att utveckla, och varje enhet har en även om inte nämns.
En serieport kan till exempel ha två avbrott slutpunkter för överföring av data in och ut och sedan en kontrollslutpunkt för att ange baudvärde.

För mer information föreslår vi verkligen att läsa allt på lvr.com om USB-som det är komplexa.

Denna motor enheten har inga slutpunkter, men det betyder inte att du inte kan kommunicera med den. Det betyder bara att det endast använder en dubbelriktad kontrollslutpunkt. Detta är inte förvånande, motorer är långsam och inte kräver mycket data till kontroll.

Jämför detta videokamera/enheten:

Enhetsbeskrivningen:
bLength 18
bDescriptorType 1
bcdUSB 2,00
bDeviceClass 0 (definierade på gränssnittet nivå)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x045e Microsoft Corp.
idProduct 0x02ae
bcdDevice 1.0b
iManufacturer 2 Microsoft
iProduct 1 Xbox NUI kamera
iSerial 3 A00366A08793039A
bNumConfigurations 1
Konfiguration beskrivningen:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Själv drivs
MaxPower 16mA
Interface beskrivningen:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 specifika leverantörsklass
bInterfaceSubClass 255 leverantör specifik underklass
bInterfaceProtocol 255 leverantören särskilt protokoll
iInterface 0
Slutpunktsbeskrivning:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Överföringstyp isokrona
Synch skriver ingen
Användningsdata typ
wMaxPacketSize 0x0bc0 2 x 960 byte
bInterval 1
Slutpunktsbeskrivning:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Överföringstyp isokrona
Synch skriver ingen
Användningsdata typ
wMaxPacketSize 0x0bc0 2 x 960 byte
bInterval 1
Enheten Qualifier (för andra enheten hastighet):
bLength 10
bDescriptorType 6
bcdUSB 2,00
bDeviceClass 0 (definierade på gränssnittet nivå)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Enhetsstatus: 0x0001
Själv drivs

Enheten har två isokrona slutpunkter som båda är i typ (data kommer in i datorn). Detta är logiskt: Kinect har en IR-djup kamera och en vanlig VGA-kamera. Två kameror, två ändpunkter. Naturligtvis finns det också en kontrollslutpunkt som inte nämnts här, kontrollslutpunkt kan användas för att ställa in saker som bländare, gammakorrektion, något slags inbyggt filter, etc.

Se Steg
Relaterade Ämnen

Göra en arbetande nyckel från skrot genom reverse engineering ett lås

har du förlorat alla nycklar för ditt lock och behöver göra en ny nyckel från grunden? Låssmeden saknar en nyckel tomt som passar din lås kilspår? Ta en metall fil, några skrot plåt, och Läs vidare för en grov & tumla hemmafixare nyckel att göra guid...

Reverse engineering: USB kontrollerade hemautomation hacka

hacka ett trådlöst hem automationssystem för att vara USB kontrolleras med hjälp av två AVR microcontrollers!Kolla in videon! Systemet är verkligen mer lyhörd, men webbläsaren på min telefon är långsam.Om du gillar detta, kanske du också gillar detta...

Reverse Engineering: RGB LED-lampa med IR fjärrkontroll

vi köpte 20 av dessa RGB LED-lampor för en fest på jobbet, men jag var lite besviken med funktionerna färg bleknar de. Så jag bestämde mig att ta en apart, reverse engineer IR-protokollet, och se om det hade fler funktioner än de som är tillgängliga...

Reverse Engineering ett elstängsel laddare

Reverse engineering något kan vara en bra form av både underhållning och utbildning. Jag har ofta köpt något bara för att tillgodose demontera dem för att avgöra hur de fungerar och hur de är utformade. Längs vägen kan du lära dig en hel del, förbätt...

Live Reverse Engineering

Jag började i elektronik före tillkomsten av internet och mest solida state komponenter, så får datablad och scheman inte var lätt för mig. Idag med tillverkar att göra anpassade ICs och LCD-skärmar för allt från telefoner till TV-spel, tinkers att b...

Reverse Engineering

många av ledamöterna här på Instructables fråga om datablad eller pin outs av en enhet eller display-svar, tyvärr du skränande alltid få ett datablad och scheman, i dessa fall du har bara ett val bakåtkompilering.Reverse engineering är en färdighet s...

Billiga Arduino kontrollerade ljus Sockets - Reverse Engineering RF

Smart glödlampor kostar din förstfödda barn. Vilket är synd, eftersom smarta lampor låsa upp enorm potential för hemautomation, energibesparingaroch alla typer av coola projekt.Om bara fanns det ett sätt att kontrollera dina lampor utan att bryta ban...

XBOX 360 Controller USB hacka

jag gör den här hacka eftersom min tråd var bruten och jag hittade ingen tråd på Ebay.Så löda jag en USB-kabel på handkontrollen.Du behöver:1 x USB tråd1 x skruvmejsel1 x lödning järn1 x löda1 x limmaSteg 1: Öppna registeransvarige Öppna handkontroll...

PCB Reverse Engineering använder GIMP

det finns bara några artiklar eller guider som visar hur du kan återföra ingenjör ett kretskort med en jpg eller png bild som du har eller du ta för en PCB. Jag försökt den som nämns på denna webbplats, men jag har inte lyckats att.Syftet med bakåtko...

Reverse Engineering en liten förstärkare

Min andra Instructables på bakåtkompilering är på komponenter som du inte kan få datablad och Stifttilldelningar för. Jag bakåtkompilera ett par går runt stiger ombord en vecka, små som dessa ta mig ungefär en dag att vända ingenjör och band för dera...

Reverse Engineering att emulera bläckpatroner för skrivare Epson

för de senaste två åren, jag har planer på att bygga själv en 3D-skrivare från vissa gamla bläckstråleskrivare som jag hade samlat under årens lopp. Men inte förrän två veckor sedan hade jag faktiskt började arbeta på den.Skriva ut en kemikalie på en...

Reverse Engineering = Uzzors2k = blåttBilen Android App. Amarino grejer också.

Detta instructable hjälper mestadels människor som försöker driva/james bond (dör i morgon aldrig förstås) rc bilar. Om du bara försöker slå på lampor eller styra ditt garage med bluetooth från en android-telefon, det finns massor av andra, bättre, l...

Reverse engineering luftkonditioneringen IR Remote control protocol

Hej, detta är min första instructable, hoppas du gillar den.För att få in elektronik jag valde ett hemautomation projekt: ett system som tillåter mig att kontroll och program både luftkonditionering enheter i min lägenhet. I detta instructable jag vi...

Reverse Engineering och 3D utskrift en Lego första ordning Tie Fighter!

Först, innan vi börjar, måste du köpa en Lego första ordning Tie Fighter i referenssyfte. Du behöver också AutoDesk Inventor på datorn för att utforma den.Steg 1: Börja skapa vingenÖppna upp AutoDesk Inventor och skapa en sammansättningsfil. Nu, med...

Reverse engineering enkel plåt parentes (från en Volvo S70)

/ *Jag bestämde mig att hjälpa en vän ersätta kylaren i sin Volvo inte så länge sedan. Misstag 1! Eftersom knektar och står olägenheter, beslutade vi att hoppa över dem och sno under stötfångaren och runt fortfarande dränerande kylmediet att nå olika...

Hacking Automotive ultraljudssensorer

Detta instructable visar dig hur man hacka / återanvända en gemensam Bosch automotive ultraljud givare. Sensorn i detta instructable är en mycket vanlig sensor som kan hittas i soptippar över hela världen. Förhoppningen är att denna information komme...

Kassaapparat klocka (VFD Display)

Min resa genom reverse engineering en något begagnade kassaapparat display.Efter att allt fungerar, jag visar det som en klocka, även om mina framtida planer för visning inte är vet vid denna tid...Steg 1: bakgrund Företaget jag arbetar för har elekt...

Bärgning Liquid Crystal skärmar (LCD-skärmar)

nästan all elektronik har någon form av mänsklig kontakt, från blinkande ljus och pipande högtalare till sju segment alfanumeriska och flytande kristaller visar. Detta Instructable handlar om bärgning och testning av flytande kristaller displayer, oc...

USB-drivna kamera / Canon PowerShot ELPH batteri hacka

Denna kort tutorial förklarar hur till hacka en Canon PowerShot batteri för att driva kameran från en extern 5V batteri eller en USB-nätadapter. Dessa punkt och skjuta kameror från Canon är ganska cool, särskilt när hackat med CHDK firmware att utöka...