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

Paso 7: ¿Qué mensajes para enviar?

Ahora podemos usar Python + LibUSB para enviar paquetes de Endpoint de Control con el comando

ctrl_transfer (bmRequestType, bmRequest, wValue, wIndex, nBytes)

Este comando puede hacer tanto enviar y recibir dependiendo de lo que bmRequestType dice (entrada o salida). Aún así, hay un montón de opciones aquí. Para enviar el comando derecho necesita conocer el RequestType y la petición de derecho y allí derecho valor así como el índice y cuántos bytes para leer o escribir.

Si estuviéramos totalmente solos, comenzamos por intentar leer datos desde el dispositivo. Esto significa que tenemos que establecer primero el RequestType

Tipo de dirección destinatario
D7 D6 D5 D4 D3 D2 D1 D0
Para bmRequestType el valor pasado es muy estructurado, por lo no es tan difícil de adivinar. (Véase lvr.com para más información)

Brocas de 2, 3 y 4 son reservas así les a 0.
La dirección está fijada por broca #7, 0 es un 'escritura' hacia fuera el dispositivo, 1 es una lectura desde el dispositivo
Tipo de mensaje es de dos bits, 0 = estándar, 1 = clase, 2 = vendedor, 3 = reservado. Para muchos dispositivos que no son estándar, usted probablemente querrá 2 para el tipo vendedor. Si es un tipo más estándar de dispositivo, como una cámara o un micrófono, trate de 0 o 1. 3 es
Los dos últimos bits son usd para determinar el destinatario para el mensaje 0 = dispositivo, 1 = interfaz, 2 = extremo, 3 = otro. Ir con 0 para empezar, usted puede intentar 2 si hay otros extremos
La cosa más segura a hacer es leer los datos (no modo Sobrescribir nada ni configurar) puede hacerlo mediante el envío de paquetes con 0b11000000 (datos de proveedores de lectura de dispositivo) = 0xC0.

Si tuviera que escribir a un fuzzer, empezaría índice 0 y recorrer todos los valores de byte (255 valores diferentes) de bmRequest y el primer cientos wValues pocos. Su caja fuerte bastante para solo lee datos al azar a un dispositivo USB. Empezar por leer un byte para ver si algo demuestra para arriba, a continuación, aumentar el valor

importación usb.core
importación usb.util
Import sys

# encontrar nuestro dispositivo
dev = usb.core.find (idVendor = 0x045e, idProduct = 0x02B0)

¿# fue encontrado?
Si dev ninguno:
elevar ValueError ('dispositivo no encontrado')

# establecer la configuración activa. Sin argumentos, el primero
# configuración será el activo
dev.set_configuration()

# Vamos a pelusa alrededor!

# Permite inicio de lectura de 1 byte desde el dispositivo usando diversas peticiones
bRequest de # es un byte, por lo que existen 255 valores diferentes
para bRequest en range(255):
tratar de:
RET = dev.ctrl_transfer (0xC0, bRequest, 0, 0, 1)
Imprimir "bRequest", bRequest
impresión ret
excepto:
# no se pudo obtener datos para esta solicitud
pasar

Se parece a petición los valores 0, 5, 16, 50, 54, 64, 80 y 112 que todos volver a algún tipo de datos. El resto no tenía nada que leer

A continuación intentaremos leer más datos cambiando el argumento pasado a 100 bytes
OK muchos datos, pero ¿qué significa? Esto es donde algunas adivinanzas basado en el dispositivo sí mismo vendría práctico. Sin embargo estoy terriblemente perezoso y si se les da una opción para evitar un montón de conjeturas, me quedo!

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