USB hack por ingeniería inversa (3 / 12 paso)

Paso 3: Determinar los descriptores

Lo mejor para hacer una vez que haya determinado el VID/PID es identificar el descriptor del dispositivo. Un descriptor es una especie de 'menú' de lo que puede hacer el dispositivo y cómo le gusta a transferir datos. En general, cada dispositivo tiene un descriptor. A veces un dispositivo tiene más de un descriptor y puede que uno quiera pero no es muy común por lo que sólo vamos a ignorarlo. Una fantástica forma de obtener el descriptor sin tener que escribir cualquier software debe ejecutar lsusb - vv en un equipo linux. No hemos encontrado un equivalente para Windows o Mac, así que encontrar un amigo con un ordenador Linux. (Probar la herramienta "USB Prober" de Apple para Mac OS X).

Aquí está la salida de lsusb para el Motor de NUI

Descriptor del dispositivo:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (definido a nivel de interfaz)
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
Descriptor de configuración:
bLength 9
bDescriptorType 2
wTotalLength 18
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Autoalimentado
MaxPower 100mA
Descriptor de interfaz:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 clase específica de proveedor
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Estado del dispositivo: 0 x 0000
(Bus Powered)
Vamos a ver lo que tenemos. Puede ver el VID y PID para arriba allí. A continuación vamos a ver en bNumConfigurations (cuántos descriptores diferentes tenemos) y por suerte para nosotros el número es 1. A continuación, ver el Descriptor de interfaz en bNumEndpoints particular, que es 0. Esto significa que hay no hay extremos.

Criterios de valoración son un tipo de USB 'pipe datos' - hay 4 tipos:

Extremos a granel son para transferir muchos datos, como una unidad de disco. Está bien si tarda un poco más pero queremos paquetes grandes. Este parámetro va sólo en una dirección (para leer y escribir que desea dos)
Interrumpir extremos son para transferir pequeñas cantidades de datos muy rápidamente, como para un ratón USB. En este caso, el dispositivo tiene que ser sensible por lo que queremos que un movimiento rápido. Este parámetro va sólo en una dirección
Isócronos extremos son para transferir una gran cantidad de datos donde los datos deben aparecer al mismo tiempo y si no puede él sólo deben dejarse caer. Esto es para cosas como Audio y Video donde la sincronización es clave. Este parámetro va sólo en una dirección (modo bidireccional audio para auriculares y micrófono tendría dos EPs)
Control extremos son esta raro no-absolutamente-an-Endpoint Endpoint. Se utilizan para transferir pequeñas cantidades de datos a decir activar un dispositivo o desactivar. Son muy baratos desarrollar, y cada dispositivo tiene una aunque no mencionado.
Por ejemplo, un puerto serial puede tener dos extremos interrupción para transferir datos hacia adentro y hacia afuera y luego un extremo control para ajustar la velocidad en baudios.

Para más detalles realmente sugerimos leer todo en lvr.com acerca de USB ya que es complejo.

Este dispositivo del motor no tiene extremos, pero eso no significa que no se puede comunicar con él. Sólo significa que sólo utiliza una bidireccional Control extremo. Esto no es sorprendente, los motores son lentos y no requieren una gran cantidad de datos al control.

Contraste esto con el dispositivo de cámara de vídeo:

Descriptor del dispositivo:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (definido a nivel de interfaz)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x045e Microsoft Corp.
idProduct 0x02ae
bcdDevice 1.0b
iManufacturer 2 Microsoft
iProduct 1 Xbox NUI cámara
iSerial 3 A00366A08793039A
bNumConfigurations 1
Descriptor de configuración:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Autoalimentado
MaxPower 16mA
Descriptor de interfaz:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 clase específica de proveedor
bInterfaceSubClass 255 subclase específica de proveedor
bInterfaceProtocol 255 protocolo específico del proveedor
iInterface 0
Descriptor de Endpoint:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Tipo de transferencia isócrona
Sincronización de tipo ninguno
Datos de tipo de uso
wMaxPacketSize 0x0bc0 2 x 960 bytes
bInterval 1
Descriptor de Endpoint:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 1
Tipo de transferencia isócrona
Sincronización de tipo ninguno
Datos de tipo de uso
wMaxPacketSize 0x0bc0 2 x 960 bytes
bInterval 1
Dispositivo de clasificación (para otros dispositivo de velocidad):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (definido a nivel de interfaz)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Estado del dispositivo: 0x0001
Autoalimentado

Este dispositivo tiene dos extremos isócronos, los cuales son de tipo (datos en el ordenador). Esto tiene sentido: el Kinect tiene una cámara de profundidad infrarrojos y una cámara VGA normal. Dos cámaras, dos puntos finales. Por supuesto, también hay un extremo Control no mencionado aquí, el endpoint de Control puede utilizarse para definir cosas como apertura, corrección gamma, cualquier tipo de filtro incorporado, etc..

Artículos Relacionados

Ingeniería inversa: USB controlado hack de automatización del hogar

Ingeniería inversa: USB controlado hack de automatización del hogar

hackear un sistema inalámbrico de automatización del hogar para ser controlada usando dos Microcontroladores AVR USB!¡ Mira el video! El sistema es realmente más sensible, pero el navegador de mi celular es lento.Si te gusta esto, posiblemente le gus
¿Hacer una clave de trabajo de chatarra por un bloqueo de ingeniería inversa

¿Hacer una clave de trabajo de chatarra por un bloqueo de ingeniería inversa

has perdido todas las llaves de su cerradura y necesita hacer una nueva clave desde cero?  ¿Le falta el cerrajero una llave en blanco que se ajuste a la ranura de la cerradura? Agarrar una lima de metal, alguna hoja de chatarra y leer en un áspero y
Ingeniería inversa RF mando a distancia para IoT.

Ingeniería inversa RF mando a distancia para IoT.

En este instructable, usted aprenderá cómo invertir el ingeniero cómo implementar en un ordenador muy barato de WiFi activado, el MCU de nodo y mandos de Radio frecuencia (RF). Usando esta técnica puedes IoT habilitar dispositivos mayores y dispositi
Ingeniería inversa: Bombilla de LED RGB con mando a distancia IR

Ingeniería inversa: Bombilla de LED RGB con mando a distancia IR

compramos 20 de estas bombillas LED RGB para una fiesta en el trabajo, pero estaba un poco decepcionado con las funciones de fundido de color que proporcionaban. Así que decidí tomar a un ingeniero inverso, aparte el protocolo de IR y ver si tenía má
Hackear la oreja espía y aprender ingeniería inversa un circuito

Hackear la oreja espía y aprender ingeniería inversa un circuito

este instructable introduce el venerable oído espía en detalles y mi manera a invertir el ingeniero un circuito.¿Por qué este dispositivo merece su propio instructivo?:-Usted puede comprar un oído espía por un dólar!-Se pueden amplificar sonidos hast
Ingeniería inversa en vivo

Ingeniería inversa en vivo

Empecé en electrónica antes de la llegada de internet y de componentes de estado sólidos más, por lo que no fue fácil para mí obtener hojas de datos y esquemas. Hoy en día con fabrica haciendo ICs personalizadas y pantallas LCD para todo, desde los t
Un cargador de la cerca eléctrica de ingeniería inversa

Un cargador de la cerca eléctrica de ingeniería inversa

algo ingeniería inversa puede ser una gran forma de entretenimiento y educación.  Que muchas veces he comprado artículos para la satisfacción de desmontaje para determinar cómo funcionan y cómo están diseñados.  A lo largo de la manera usted puede ap
Un pequeño amplificador de ingeniería inversa

Un pequeño amplificador de ingeniería inversa

Mi Instructables otros en la ingeniería inversa está en componentes que no puede obtener hojas de datos y conexiones. Invertir que un circuito de dos tableros a la semana, pequeños como estos me llevan de un día para invertir a ingeniero y tira para
Ingeniería inversa = Uzzors2k = Bluecar Android aplicación Amarino cosas también.

Ingeniería inversa = Uzzors2k = Bluecar Android aplicación Amarino cosas también.

Este instructable sobre todo Ayude a la gente tratando de coches del rc coche/james bond (mañana nunca muere por supuesto).  Si tu tratando de encender las luces o controlar su garaje con el bluetooth de un teléfono con android, hay toneladas de otro
Cualquier herramienta de limpieza de ingeniería inversa para el rendimiento óptimo del equipo

Cualquier herramienta de limpieza de ingeniería inversa para el rendimiento óptimo del equipo

Si eres algo como yo, le gustaría tener y tomar el control de todo en su computadora. Ust pueda determinar cuánto almacenamiento de información se utiliza para bla programas bla, bla.Aunque las aplicaciones pueden ser útiles en hacer las cosas, ¿por
Ingeniería inversa

Ingeniería inversa

muchos de los miembros aquí en Instructables pregúntele a hojas de datos o pin outs de un dispositivo o pantalla en respuestas, desafortunadamente usted no puede siempre obtener una hoja de datos y esquemas, en estos casos sólo tienes una opción inge
Ingeniería inversa para emular los cartuchos de tinta para una impresora Epson

Ingeniería inversa para emular los cartuchos de tinta para una impresora Epson

durante los últimos dos años, he estado planeando construir yo mismo una impresora 3D de algunas impresoras de inyección de tinta viejo que yo había recogido durante los años. Pero no hasta hace dos semanas había hecho empecé a trabajar en él.La impr
Tomacorriente de pared USB Hack

Tomacorriente de pared USB Hack

Teléfono, teléfono, teléfono!Todo el mundo lo usa todo el tiempo, tal vez lo está usando ahora también!Pero cada teléfono tiene una desventaja!Que queda sin jugo realmente rápido!Estos días encontrar cargadores de teléfono hacer nuestra cabeza girar!
XBOX 360 controlador USB Hack

XBOX 360 controlador USB Hack

hacer este hack porque mi cable estaba roto y me no encontré cable en Ebay.Así que suelde un alambre del USB del controlador.Te hace falta:1 alambre de x USB1 x destornillador1 x soldadura de hierro1 x soldadura1 x pegamentoPaso 1: Abra el controlado