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

Paso 12: Acelerómetro bono!

Vamos a volver atrás y revisar el misterioso comando Read 0x32 que nos inexactas con un poco. Su también en los registros, asegúrese de configurar el filtro para mostrar al dispositivo Host y dispositivo al Host ya que es una 'lectura' no un 'escritura'

Estuvimos muy cercanas con nuestros comandos, parece que nos deberíamos estar leyendo sólo 10 bytes. También parece que los datos realmente no cambian mucho excepto un poco más abajo...

El byte 7' th cambia un derecho mucho después de enviar eso bRequest 0x31 (movimiento del motor). ¿Eso implica que estos datos leer de alguna manera se ve afectados por el motor, posiblemente un byte de respuesta motor?

Extracción de un desmontaje del dispositivo (de iFixit) vemos que hay un 'Inclinómetro' / acelerómetro (Kionix KXSD9). La hoja de datos indica que se utiliza para la estabilización de la imagen, y tiene 3 ejes (X, Y y Z) con 10 bits de datos por eje.

Permite leer continuamente que los datos

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

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

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

dev.set_configuration()

Aunque la verdad:
# Obtener datos de brequest 0x32
RET = dev.ctrl_transfer (0xC0, 0x32, 0 x 0, 0 x 0, 10)
imprimir mapa (hexagonal, ret)
Sacudiendo el Kinect mientras se ejecuta el script verá claramente los cambios en los datos con el movimiento.

Para identificar los ejes de acelerómetro, girarla sólo de una manera en un momento y observe lo que cambia. También se puede ver cómo estos datos estan en bytes, pero los datos del acelerómetro deben ser que una palabra firmada porque hay gira de 0xfff7 a 0x0007 lo que indicaría un resultado negativo a la conversión positiva.

Podemos echar dos bytes en un valor firmado de 'mano' (en C es un poco más fácil, lo sabemos)

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

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

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

dev.set_configuration()

Aunque la verdad:
# Obtener datos de brequest 0x32
RET = dev.ctrl_transfer (0xC0, 0x32, 0 x 0, 0 x 0, 10)
#print mapa (hexagonal, ret)

x = (ret [2] << 8) | RET [3]
x = (x + 2 ** 15) % 2 ** 16 - 2 ** 15 # convertir a 16b firmado
y = (ret [4] << 8) | RET [5]
y = (y + 2 ** 15) % 2 ** 16 - 2 ** 15 # convertir a 16b firmado
z = (ret [6] << 8) | RET [7]
z = (z + 2 ** 15) % 2 ** 16 - 2 ** 15 # convertir a 16b firmado

imprimir x, "\t", "\t", y, z
Ahora al ejecutar la secuencia de comandos verás los datos firmados aparecen correctamente

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