USB hacka genom Reverse Engineering (10 / 12 steg)
Steg 10: Kommandot #1 & 2 - ledde blinky!
Vi ska redigera vår python kod för att bara skicka kommando #1 och se vad som händer. Från våra loggar vet vi att vi bör använda bRequestType av 0x40 för att skicka kommandon från värd-till-anordning, (verifiera detta genom att titta på de bmRequestType bitarna av paketen kommando), wIndex och wLength nollFör kommandot #1, ange bRequest till 0x06 och en wValue till 4. Det sista argumentet är nu en tom array [] anger ingen data överförs
importera usb.core
importera usb.util
importera sys
# hitta vår enhet
dev = usb.core.find (idVendor = 0x045e, idProduct = 0x02B0)
# var det hittade?
om dev ingen är:
höja ValueError ("enhet hittades inte")
# Ställ in den aktiva konfigurationen. Utan argument, först
# konfiguration kommer att vara den aktiva
dev.set_configuration()
ret = dev.ctrl_transfer (0x40, 0x6, 0x1, 0, [])
Skriv ut ret
Vi körde vår python kod and...nothing hände!
OK var det väl kanske några initiering kommando. Kan ersätta det med kommandot nästa #2, bRequest till 0x06 och en wValue till 1
ret = dev.ctrl_transfer (0x40, 0x6, 0x1, 0, [])
Vi körde kommandot och motorn flytta inte men lampan slutat blinka.
För kul vi körde föregående kommando igen och LED började blinka igen.
Nu har vi en idé: kanske denna bRequest 0x6 styr LED?
På egen hand, fortsätter denna linje av tanken genom att prova olika wValues från 0 upp för att se vad andra wValues gör, hålla reda på dem alla i en anteckningsbok eller projekt.