Acceso UART. Hackeo de Hardware con Bus Pirate

Acceso UART. Hackeo de Hardware con Bus Pirate

Bus Pirate es una herramienta flexible para hacking de hardware que permite una interfaz de bus universal que se comunica con la mayoría de los chips. Soporta varios protocolos:

  • 1-Wire
  • I2C*
  • SPI
  • JTAG
  • Serial asíncrono
  • MIDI
  • Teclado de PC
  • LCD HD44780
  • Bibliotecas de 2 y 3 cables con control de pines bit a bit
  • Modos de bitbang binario scriptable, 1-Wire, I2C, SPI y UART

Características

  • Pines tolerantes de 0-5.5 voltios
  • Sonda de medición de 0-6 voltios
  • Medición de frecuencia de 1Hz-40MHz
  • Modulador de ancho de pulso de 1kHz - 4MHz, generador de frecuencia
  • Resistencias pull-up de múltiples voltajes integradas
  • Fuentes de alimentación de 3.3 voltios y 5 voltios integradas con reinicio por software
  • Macros para operaciones comunes
  • Detectores de tráfico de bus (SPI, I2C)
  • Un bootloader para actualizaciones de firmware fáciles
  • Modo USB->serial transparente
  • Analizador lógico de baja velocidad de 10Hz-1MHz
  • Controlador de servos
  • Puede programar muchos microcontroladores AVR
    • Compatible con AVRdude
    • Puede emular el AVR STK500 v2 con firmware alternativo ST500 Clone
  • Programa FPGAs y CPLDs con firmware alternativo XSVF
  • Programable desde Perl, Python, etc.
  • Traducciones (actualmente español e italiano)
  • Código fuente de dominio público (Creative Commons Zero). Prototipe con el Bus Pirate, luego use el código en su proyecto como desee.

Si podemos identificar un pinout UART en una placa, podemos intentar conectarnos a él con BusPirate.

Usando la siguiente tabla podremos conectar el BusPirate al dispositivo objetivo:

Una vez que conectemos el bus pirate a los pines en tu placa y configuremos tu software de terminal para conectar (la velocidad de baudios es 115200), verás el aviso HiZ>. Si no lo ves, simplemente presiona [enter].

Bien, ahora cambiaremos al modo UART, presionaremos m:

HiZ> m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. KEYB
9. LCD
x. exit(without change)

(1)>

Ahora presionarás 3 para UART, y necesitarás configurar la velocidad del puerto serial (bps), bits de datos, paridad, bits de parada, polaridad y voltaje (tipo de salida) del dispositivo al que deseas conectar.

Advertencia, si tu dispositivo soporta hasta 3 voltios, y lo alimentas con 5 voltios, es más que probable que lo quemes.

Ahora el aviso cambió a UART>. Ingresa “(0)” para mostrar los macros disponibles:

UART>(0)

0.Menú macro
1.Puente transparente
2.Monitor en vivo
3.Puente con control de flujo

Ahora ingrese “(3)” para entrar en modo puente con control de flujo y el terminal recibirá entrada de su dispositivo.

En este momento puede tener un shell o acceso al cargador de arranque (tal vez pueda intentar arrancar el kernel con single o init=/bin/bash).

¡Feliz hacking!