Ingenieria Inversa: Encontrar un puerto serial en un sistema embebido

ingenieria_inversa

ingenieria_inversa

Desde hace mucho me a llamado la atención la ingeniería inversa y el hacking hardware, lamentablemente hay poca información o material sobre este tema en español, para los que inician o quieren iniciar es a veces difícil empezar con la primeras practicas. Hoy voy a mostrar uno de los pasos básicos para encontrar un puerto serial en un sistema embebido. Este tutorial esta basado en un blog que me encanta leer Devtty0 del cual he traducido algunas partes y he agregado experiencias mías.

Vamos a ver ver tres formas de hacerlo:

1.- Multimetro

Esta es la manera menos costosa, pero no la mas fácil, todos tenemos a la mano un multimetro (si no es así, deberías comprar uno), ¿que características debe tener el multimetro? Debe medir continuidad o resistencia, recomiendo un multimetro decente mínimo unos 600 o 800 pesos para que tenga una medición sensible.

Lo primero y mas fácil de hacer es identificar tierra (GND) es lo podemos hacer con la opción del multimetro “continuidad” tomamos uno de pines y medimos con referencia a uno de los lazos de tierra del dispositivo.

Ya teniendo identificado el pin de tierra, podremos encontrar el pin de voltaje (VCC) y esto lo hacemos por medio del pin ya identificado GND, cuando midamos continuidad o resistencia entre los pines de tierra y vcc obtendremos una resistencia baja aunque sea por unos leves instantes, esto se debe al capacitor de desacoplamiento que se suele colocar en la entrada de alimentación para eliminar el ruido eléctrico.

Ahora sigue TX en este caso el pin de transmisión siempre va a estar en alto de acuerdo a el protocolo de comunicación serial, una forma de identificarlo es apagar nuestro dispositivo, colocar nuestro multimetro entre tierra y el pin que sospechamos es TX y ver si al arrancar el dispositivo hay una variación de voltaje, esta variacion de voltaje se debe a la trama o tren de pulsos inicial del puerto al comenzar el arranque del dispositivo, esto provoca que baje el voltaje promedio entre estos pines.

Por ultimo RX es el  pin definitivamente con un poco mas difícil de encontrar y ya que varían dependiendo el dispositivo, puedes encontrarlo:

  • Siempre en voltaje alto (El cual es nuestro caso en este modem)
  • Voltaje en alto unos pocos cientos de milivolts menor que VCC
  • Flotando alrededor de unos cientos de milivolts menor que VCC
  • Flotando durante unos segundos y luego se queda en alto cuando se inicializa el puerto serie

2.- Osciloscopio

Si llegamos a tener en nuestro taller un osciloscopio la identificación del puerto se vuelve mas fácil simplemente debemos analizar la señal que cada pin nos envié y comprarlo con los datos que ya sabemos del puerto serial, el pin de transmisión nos dejara ver un tren de pulsos en la pantalla de nuestro oscilocopio.

3.- JTAGulator

JTAGULATOR

JTAGULATOR es una herramienta desarrollada por grand Idea Studio en con tecnología Parallax, esta herramienta como su nombre lo dice nos ayuda a encontrar los denominados puertos JTAG

usando_jtagulator

Conectamos a nuestra tarjeta (Importante: NO he conectado el in de alimentación, se puede dañar el dispositivo.)

jtagulator_conexion2

Encendemos nuestro modem y abrimos el puerto serial donde esta ubicado nuestro JTAGULATOR

IMG_20140813_211145554

Abrimos el puerto serial

Jtagulator1

Seleccionamos el voltaje al que trabaja el puerto serial del modem en este caso 3.3v

Jtagulator2

Seleccionamos el numero de pines que usaremos para encontrar el puerto serial, en este caso serán 3 e iniciamos las permutaciones

Jtagulator3

Ahora debemos ver cada una de las combinaciones que nos muestra Jtagulator y ver los datos que nos envia, en base a eso podremos identificar los pines y saber a que velocidad trabaja el puerto. ¿Como sabemos eso? En la trama que nos devuelve el modem podemos ver valores como FF esto quiere decir que los pines se quedan en alto, no hay cambio.

Y así continuamos hasta la velocidad de 115200 podemos ver algunos saltos de linea y retorno de carro (sus valores hexadecimal), ademas de que es una trama bastante grande, también pudiera ser la velocidad siguiente  230400 ya que al ser una velocidad cercana pude leer algunos datos , pero probemos con 115200 una velocidad común en este tipo de dispositivos. (En el video mas adelante puedes ver con mas detalle esta parte)

 terminal1

BAM!! Nos pide la contraseña


En este caso nuestro puerto queda de la siguiente manera:

JTAGulator     Modem

PIN0  —>        RX

PIN1 —–>      TX

Velocidad en baudios: 115200

Ahora solo queda probar con algunas contraseñas: root, admin o la clave del wifi que viene en la etiqueta del modem 😉

terminal2

terminal3

terminal4

terminal5

Si todavía tienes alguna duda sobre las conexiones en uno de los #InventorsLive demostré en vivo como conectarse al puerto serial de un modem Hawuei HG520

Espero sus comentarios y si han obtenido conexión a un puerto serial de un sistema embebido comenten como les fue.

 

Saludos Inventores

Taller de Firefox OS.

taller_firefox

 

taller_firefox

Los amigos de Mozilla México visitan nuestro hackerspace para compartir con todo con nuestra comunidad, ofreciendo una charla y taller de Mozilla y Firefox OS para el próximo 24, 25 y 26 de Septiembre.

Firefox: 10 años cambiando la web
Empezaremos con una charla de los 10 años de Firefox. Contando un poco de las experiencias que se han tenido en la comunidad Mozilla, sus proyectos y como pueden involucrarse las personas.
Miércoles 24 de Septiembre, 20:00 hrs.

Desarrollo de aplicaciones para Firefox OS
Taller sobre Firefox OS el sistema operativo para móviles de Mozilla basado en la web, el taller consta de dos sesiones de 2 1/2 horas.
Jueves 25, Viernes 26 18:30 hrs

Lugar: The Inventor’s House, Guadalupe 306, Barrio de Guadalupe

Costo:
El costo de recuperación del evento es una cooperación voluntaria para acondicionamiento y mantenimiento del hackerspace.

Registro: Puedes hacerlo en nuestro formulario

Por favor sólo confirmar asistencia si realmente va a asistir y llenar formulario para una correcta logística, no queremos saturar el espacio, así que las personas registradas tendrán su lugar asegurado.

Dejar un comentario para aclarar dudas

Anunciada Intel Edison

A principios de este año, Intel anuncio la “Intel Edison” una pequeña computadora que tenia forma de una SD y que viene muy bien con el internet de las cosas y el mundo wearable. Ayer Intel a anunciado una versión que al parecer va a ser el diseño final, ya no tiene forma de SD, pero aun sigue siendo pequeña y toma la arquitectura x86.

edison

La característica clave este pequeña tarjeta es por supuesto el CPU Intel. Es un SoC de 22nm con dos nucleos funcionando a 500Mhz. A diferencia de otros micro dispositivos la Edison cuenta con un Atom Z34XX, tiene una arquitectura x86, también cuanta con 4Gb de eMMC Flash y 1 Gb de memoria RAM DDR3, ademas incluye un microcontrolador Quark el mismo que se encuentra en la Intel Galileo – Funcionando a 100 Mhz. La mejor parte es que el precio estará alrededor de $50 dolares muy bien para un pequeño dispositivo con nucleo x86, solo un poco mas caro que la Raspberry Pi.

edisonbreakout

Las medidas son 35.5mm x 25,0 mm apenas mas grande de una SD, Intel esta usando un conector de 70 pines que incluye una interfaz de SD, dos UART, dos I2C, SPI, doce GPIO con 4 PWM y un controlador USB OTG 2.0, también hay un par de módulos en por lo que es capaz de 802.11 a/b/g/n y Bluetooth 4.0.

SparkFun_Edison_Boards-18

El sistema apoyado de fabrica sera “Yocto Linux 1.6”, pero como se trata de una arquitectura x86 hay todo un mundo de distribuciones linux para ejecutar, teóricamente hasta una versión de windows ejecutarse.

Si deseas hacer tu propio tablero de desarrollo la gente de intel a dejado los numero de parte en Mouser en su hoja de datos.

Aun no hay fecha de salida para su venta al publico, pero SparkFun ya tiene algunos kit y pre-venta de la tarjeta, Make también ya tiene el kit para Arduino por si gustas ir apartando para navidad.

SparkFun_Edison_Boards-15

En comparación de Intel Galileo me parece en esta tarjeta, Intel hizo una mejor elección, pero solo el tiempo y  los makers lo dirán.

Saludos Inventores