Ingeniería inversa una de las estadísticas de datos de archivo desde mi controlador de la bomba de insulina

StackOverflow https://stackoverflow.com/questions/978270

Pregunta

Esto puede o no puede ser un área gris en la materia, a pesar de que mis intenciones no son, ciertamente, por lo que mi intención no es suscitar un debate ético sobre el tema de la ingeniería inversa.

Soy una diabéticos tipo 1 en la actualidad sometidos a terapia de bomba.Soy un OmniPod usuario, es desechable pod que se adhiere a mi cuerpo y prescinde de la insulina durante 3 días.Es controlado por un personal diabetes manager [PDM] (visto de abajo), que controla la cantidad de insulina que prescindir durante las comidas, bloor lecturas de azúcar, y que contiene un alimento de índice para el cálculo de los carbohidratos en el ir.

alt text
(fuente: myomnipod.com)

El nuevo PDM tiene un puerto USB para la descarga de datos.El software es gratuito para los usuarios de Windows (un paquete llamado Copiloto), pero no hay ningún soporte de Mac.

Después de conectar el PDM en mi Mac, montado como cualquier otro dispositivo USB haría y me presentó con una lectura de volumen con un único archivo con un IBF extensión.Pesa 16KB.

Mi primer instinto fue a pasar a través de un editor de texto y se presentó con un muy binarias en busca de archivos.Después pasé a través de las cadenas de (ver más abajo) y se abrió con un editor hexadecimal.A pesar de que no podía ganar mucha información aparte de las cuerdas de abajo;no hay un formato de compresión de detalles o nada.

$ strings omnipoddata.ibf 
Insulet
OmniPod
basal 1
Post-meal
e-meal
Pre-meal
e-bedtime
Pre-bedtime
.(@P
.(@P
.(@P

¿Cuál debería ser mi siguiente paso en este proceso?Soy un lenguaje dinámico hombre, por lo tanto todos los recursos para Ruby sería genial, o Python.¿Hay alguna prueba impulsado procesos de ingeniería reversa?

Tan lejos como los datos que yo estoy buscando para obtener, es la información que me gustaría gráfico para obtener más información sobre el progreso de mi (el consumo de insulina, la glucosa en sangre, marcas de tiempo);todo lo cual es posible en el paquete de software de Windows.

¿Fue útil?

Solución

Lo que me gustaría hacer a continuación es tratar de encontrar algunos números. Hay un montón de maneras en que los números podrían ser codificados:

  • Ints (1, 2, 4 bytes, diversos endianness)
  • punto flotante (de varios tamaños)
  • punto fijo o algún otro formato extraño

Usted tiene la ventaja de conocer algunos números que van a estar ahí, ya que se puede ver los datos en la pantalla. Así que me gustaría buscar esos números en el archivo (en los diversos formatos arriba). Esto debe darle algunos datos, como mínimo.

A continuación, se mencionan las marcas de tiempo. Las marcas de tiempo son por lo general bastante fácil, porque son siempre enteros sin signo de 32 bits, y tiene una buena gama aproximada (time () +/- unos cuantos 100.000). A fin de buscar enteros cerca de allí.

Usted puede hacer todo esto a mano con un editor hexadecimal o escribir un pequeño script. Una vez que comienza a recibir algunos datos fuera, buscar patrones. Esto debería ayudar mucho con la búsqueda de los campos más interesantes. Buena suerte!

Otros consejos

Yo empezaría buscando hexagonal representación de valores conocidos. ¿El dispositivo (como muestra la imagen) tienen una pantalla, o se puede mirar en las ventanas?

Si se puede, por ejemplo, encontrar una serie de números en hexadecimal que se han encontrado en el interior de la versión de Windows, que podría ser capaz de averiguar el formato de 'registro'. En cuanto a ella, que parece contener algún tipo de información de la cabecera / versión, y una serie de registros con valores numéricos hexadecimales codificados.

Eso te dará un buen punto de partida.

Me basta con ejecutar una máquina virtual para la versión de Windows y utilizar OllyDbg a desensamblar ella. Esa es la mejor opción en lugar de mirar a un archivo binario y adivinar qué variables se correlacionan con lo offset.

Messing con su propia bomba de insulina no es probablemente la idea más inteligente sin embargo. Suponiendo que el archivo manipula la bomba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top