SlideShare una empresa de Scribd logo
Ingeniería reversa de
dispositivos seriales con
    algo de Python

    Alfonso de la Guarda Reyes
         alfonsodg@gmail.com
                   @alfonsodg
DISCLAIMER
Todo el contenido de esta charla es resultado de investigación
con fines didácticos y educativos. El autor no se hace
responsable por el uso del conocimiento contenido en la
siguiente presentación. La información contenida debe ser
utilizada únicamente para fines éticos y con la debida
autorización.
Todo descubrimiento realizado, ha sido y será usado de forma
legal. La audiencia debe asumir todo lo que se exponga hoy,
como “falso” y “sin fundamento” hasta que lo compruebe
personalmente. Limahack no es el autor directo de ninguno de
los descubrimientos expuestos, ni de las herramientas
demostradas, ni los conoce.
Todas las opiniones vertidas durante esta presentación son
exclusivas del expositor, Limahack no es responsable de
ninguna de las opiniones vertidas.
Todavía hay dispositivos con
                     puertos seriales?


              SI

Como también: paralelos, usb, con
puertos propietarios, etc....


Es un estándar de la industria... aunque
hoy en día su uso es más especializado
Cómo funcionan los puertos
                                     serie?

●
    Interfaz de                 ●
                                    Seguimiento de un
    comunicaciones digital          protocolo, usualmente
                                    “estándar”
●
    Transmisión bit a bit
●
    Normas RS-232 y RS-
                                ●
                                    Los protocolos tienden
    422 / Propietarias              a emplear secuencias
                                    ASCII
●
    Asíncronos                  ●
                                    Algunos protocolos
●
    Simplex, Half Duplex y          propietarios hacen uso
    Full Duplex                     de IO/CTL
●
    Chips UART
Por qué necesito manipular los
                            puertos serie?
●
    Acceder a funcionalidades particulares de
    nuestros dispositivos
●
    Enviar y recibir datos de los mismos
    (dispositivos)
●
    En general para controlarlos... hasta el
    punto en donde el fabricante lo permita
Es complicado acceder a los
                        dispositivos por puertos serie?
●
    Ingredientes: puertos series (emisor/receptor),
    cable serie, software de comunicaciones,
    parámetros y (quizás) conocer el protocolo...
●
    Preparación: mezclar los ingredientes según las
    especificaciones del fabricante del dispositivo
●
    Presentación: Hacer lo que deseamos según lo
    permita el fabricante
Y qué sucede cuándo la
 receta con funciona?
Hackeando comunicaciones
                       seriales (preparación)
●
    Informarnos: buscar todo material relativo
    al dispositivo y/o hasta de sus chips, cada
    uno puede revelar valiosa información


●
    Buscar si hay software que permita
    comunicarse con el dispositivo de
    alguna/cualquier manera
Hackeando comunicaciones
                        seriales (practicando)
●
    Verificar pinout de puertos y cables
●
    Configurar parámetros del puerto
●
    Probar protocolos o comandos, buscando
    respuesta de los dispositivos
●
    “Sniffear” un aplicativo que trabaje con el
    dispositivo e interpretar las señales /
    comandos
Receta 1: Dispositivo Lector de
                      Tarjetas por Proximidad
●
    Transmisión síncrona
●
    Comando de petición de registros
●
    Comando de validación de recepción con
    llave para vacío de memoria
●
    Tramas simples alfanuméricas con código
    de tiempo e identificación de usuario
La experiencia de las radio
         Tadirant
Equipos VHF 9000 / HF 6000

●
    Objetivo: Integrar los canales de datos de los
    equipos a un sistema C4I
●
    Problema: El fabricante no entregó la
    información técnica para la integración de los
    dispositivos (ni quería hacerlo)
●
    Solución: Aplicar ingeniería reversa al puerto
    de comunicaciones para replicar el protocolo
Communication_Request (COM_REQ)




     HF-6000
      Radio
                              HF                 HF         External
  (RT/RE-6001
 Exciter & Radio             Power             Antenna      Control
System Controller)          Amplifier          Coupler       Device
Rx           Tx           Tx         Rx   Tx         Rx    Tx        Rx




       MASTER                  Slave #1         Slave #2        Slave #N
Radios Tadirant VHF 9000
●
  Con la documentación obtenida se pudo conseguir el pinout para las
  conexiones
●
  Se ubicó un software que permitía la transmisión de flujos de vídeo, se
  procedió al sniffing (monitoreo) de las señales
●
  El protocolo está basado en señales IO/CTL (secuencias de bits)
●
  Con la documentación auxiliar se procedió a completar la
  configuración de los parámetros del equipo
●
  Comunicaciones independientes del canal o modalidad (salto de
  frecuencia, etc.)
Radios Tadirant HF 6000



  No se pudo concluir esta fase, pero se
 encontró que el pinout era diferente y que
    algunas de las señales (protocolo)
requerían ajustes para cerrar el proceso....

Era una cuestión de días y más pruebas...
...este... y Python dónde
            está?
Y ahora Python...

●
    Permite prototipado rápido de los
    protocolos
●
    Al ser interpretado podemos
    experimentar con el proceso de la
    ingeniería reversa paso a paso
●
    Tiene una magnífica librería para el
    manejo de puertos seriales
Suena bonito, pero... “show
                        me the code”




https://bitbucket.org/alfonsodg/radio-data
Gracias!
alfonsodg@gmail.com

Más contenido relacionado

La actualidad más candente

Propuesta RITE E-Controls
Propuesta RITE E-ControlsPropuesta RITE E-Controls
Propuesta RITE E-Controls
E-Controls
 
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Cesar Vele
 
Introduccion Arduino 2010
Introduccion  Arduino 2010Introduccion  Arduino 2010
Introduccion Arduino 2010
Rubén Loredo
 
Taller arduino I - CyLicon Valley
Taller arduino I - CyLicon ValleyTaller arduino I - CyLicon Valley
Taller arduino I - CyLicon Valley
Alvaro García Loaisa
 
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
Victor Asanza
 
2 protocolo hart
2 protocolo hart2 protocolo hart
2 protocolo hart
Diego Rodriguez
 
ARDUINO
ARDUINOARDUINO
ARDUINO
maykelmg
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
Deyvis Gonzales Guevara
 
La Familia De Microcontroladores Pic
La Familia De Microcontroladores PicLa Familia De Microcontroladores Pic
La Familia De Microcontroladores PicAndres
 
FPGA.
FPGA. FPGA.
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagAlarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
joaquinin1
 
Taller fabricación de robots-d1
Taller fabricación de robots-d1Taller fabricación de robots-d1
Taller fabricación de robots-d1
José Pujol Pérez
 
Arduino componentes
Arduino componentesArduino componentes
Arduino componentes
Luis Enrique Hernandez Anibal
 
Manual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de alteraManual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de altera
Edwin Rosario Gabriel
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación práctica
Gerardo C
 
Arduino práctico comunicaciones
Arduino práctico   comunicacionesArduino práctico   comunicaciones
Arduino práctico comunicaciones
Jose Antonio Vacas
 
Diseño de un circuito wake-up para redes de sensores inalámbricas
Diseño de un circuito wake-up para redes de sensores inalámbricasDiseño de un circuito wake-up para redes de sensores inalámbricas
Diseño de un circuito wake-up para redes de sensores inalámbricasRFIC-IUMA
 

La actualidad más candente (20)

Intro arduino
Intro arduinoIntro arduino
Intro arduino
 
Propuesta RITE E-Controls
Propuesta RITE E-ControlsPropuesta RITE E-Controls
Propuesta RITE E-Controls
 
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
 
Introduccion Arduino 2010
Introduccion  Arduino 2010Introduccion  Arduino 2010
Introduccion Arduino 2010
 
Taller arduino I - CyLicon Valley
Taller arduino I - CyLicon ValleyTaller arduino I - CyLicon Valley
Taller arduino I - CyLicon Valley
 
Iniciacion arduino
Iniciacion arduinoIniciacion arduino
Iniciacion arduino
 
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
 
2 protocolo hart
2 protocolo hart2 protocolo hart
2 protocolo hart
 
ARDUINO
ARDUINOARDUINO
ARDUINO
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
 
La Familia De Microcontroladores Pic
La Familia De Microcontroladores PicLa Familia De Microcontroladores Pic
La Familia De Microcontroladores Pic
 
Seminario de Arduino
Seminario de ArduinoSeminario de Arduino
Seminario de Arduino
 
FPGA.
FPGA. FPGA.
FPGA.
 
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagAlarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
 
Taller fabricación de robots-d1
Taller fabricación de robots-d1Taller fabricación de robots-d1
Taller fabricación de robots-d1
 
Arduino componentes
Arduino componentesArduino componentes
Arduino componentes
 
Manual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de alteraManual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de altera
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación práctica
 
Arduino práctico comunicaciones
Arduino práctico   comunicacionesArduino práctico   comunicaciones
Arduino práctico comunicaciones
 
Diseño de un circuito wake-up para redes de sensores inalámbricas
Diseño de un circuito wake-up para redes de sensores inalámbricasDiseño de un circuito wake-up para redes de sensores inalámbricas
Diseño de un circuito wake-up para redes de sensores inalámbricas
 

Similar a Ingenieria Reversa de Puertos Series con algo de Python

T3ch fest leganes_final
T3ch fest leganes_finalT3ch fest leganes_final
T3ch fest leganes_final
Rober Garamo
 
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Buenaventura Salcedo Santos-Olmo
 
381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf
elkinmeza1
 
Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02
myconta
 
Fundamentos de telefonia ip
Fundamentos de telefonia ipFundamentos de telefonia ip
Fundamentos de telefonia ip
Jose Luis Chauca
 
Presentacion Voip
Presentacion VoipPresentacion Voip
Presentacion Voip
fernandoalvarado
 
Señales con arduino y DAC
Señales con arduino y DACSeñales con arduino y DAC
Señales con arduino y DAC
Fernando Marcos Marcos
 
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dos
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dosYersinia - Demostraciones prácticas de nuevos ataques de nivel dos
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dos
David Barroso
 
Como controlar una carga con un Arduino
Como controlar una carga con un ArduinoComo controlar una carga con un Arduino
Como controlar una carga con un Arduino
miguel cruz
 
Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5
Nahuel Defossé
 
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
Carlos Camacho
 
Info plc net_redes_industriales
Info plc net_redes_industrialesInfo plc net_redes_industriales
Info plc net_redes_industrialesJonathan Cardenas
 
Trabajo manteniminto de computo robertjimenez
Trabajo manteniminto de computo robertjimenezTrabajo manteniminto de computo robertjimenez
Trabajo manteniminto de computo robertjimenezrjimenez1012
 
Webrtc"VoIP también desde el navegador"
Webrtc"VoIP también desde el navegador"Webrtc"VoIP también desde el navegador"
Webrtc"VoIP también desde el navegador"
Fundación Proydesa
 
WebRCT "VoIP también desde el navegador"
WebRCT "VoIP también desde el navegador"WebRCT "VoIP también desde el navegador"
WebRCT "VoIP también desde el navegador"
Fundación Proydesa
 
Analisis de factibilidad
Analisis de factibilidadAnalisis de factibilidad
Analisis de factibilidad
saydo2007
 
Comoconstruimos bogota mesh.org
Comoconstruimos bogota mesh.orgComoconstruimos bogota mesh.org
Comoconstruimos bogota mesh.org
BartOc3
 
Determinar los componentes de una red e identificar y determinar los equipos ...
Determinar los componentes de una red e identificar y determinar los equipos ...Determinar los componentes de una red e identificar y determinar los equipos ...
Determinar los componentes de una red e identificar y determinar los equipos ...George Romero Baltazar
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
Irontec
 

Similar a Ingenieria Reversa de Puertos Series con algo de Python (20)

T3ch fest leganes_final
T3ch fest leganes_finalT3ch fest leganes_final
T3ch fest leganes_final
 
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
 
381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf
 
Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02
 
Fundamentos de telefonia ip
Fundamentos de telefonia ipFundamentos de telefonia ip
Fundamentos de telefonia ip
 
Presentacion Voip
Presentacion VoipPresentacion Voip
Presentacion Voip
 
Señales con arduino y DAC
Señales con arduino y DACSeñales con arduino y DAC
Señales con arduino y DAC
 
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dos
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dosYersinia - Demostraciones prácticas de nuevos ataques de nivel dos
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dos
 
Como controlar una carga con un Arduino
Como controlar una carga con un ArduinoComo controlar una carga con un Arduino
Como controlar una carga con un Arduino
 
Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5
 
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
 
Info plc net_redes_industriales
Info plc net_redes_industrialesInfo plc net_redes_industriales
Info plc net_redes_industriales
 
Trabajo manteniminto de computo robertjimenez
Trabajo manteniminto de computo robertjimenezTrabajo manteniminto de computo robertjimenez
Trabajo manteniminto de computo robertjimenez
 
Webrtc"VoIP también desde el navegador"
Webrtc"VoIP también desde el navegador"Webrtc"VoIP también desde el navegador"
Webrtc"VoIP también desde el navegador"
 
WebRCT "VoIP también desde el navegador"
WebRCT "VoIP también desde el navegador"WebRCT "VoIP también desde el navegador"
WebRCT "VoIP también desde el navegador"
 
Analisis de factibilidad
Analisis de factibilidadAnalisis de factibilidad
Analisis de factibilidad
 
Factibilidad
FactibilidadFactibilidad
Factibilidad
 
Comoconstruimos bogota mesh.org
Comoconstruimos bogota mesh.orgComoconstruimos bogota mesh.org
Comoconstruimos bogota mesh.org
 
Determinar los componentes de una red e identificar y determinar los equipos ...
Determinar los componentes de una red e identificar y determinar los equipos ...Determinar los componentes de una red e identificar y determinar los equipos ...
Determinar los componentes de una red e identificar y determinar los equipos ...
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
 

Más de Alfonso de la Guarda Reyes

Sis 2015 saludpol
Sis 2015 saludpolSis 2015 saludpol
Sis 2015 saludpol
Alfonso de la Guarda Reyes
 
Aplicaciones de E-health para ayuda al diagnostico
Aplicaciones de E-health para ayuda al diagnosticoAplicaciones de E-health para ayuda al diagnostico
Aplicaciones de E-health para ayuda al diagnostico
Alfonso de la Guarda Reyes
 
Proyecto COS
Proyecto COSProyecto COS
Presentacion imagenologia SINPA
Presentacion imagenologia SINPAPresentacion imagenologia SINPA
Presentacion imagenologia SINPA
Alfonso de la Guarda Reyes
 
Arquitecturas Libres en E-Health
Arquitecturas Libres en E-HealthArquitecturas Libres en E-Health
Arquitecturas Libres en E-Health
Alfonso de la Guarda Reyes
 
Por qué python?
Por qué python?Por qué python?
Por qué python?
Alfonso de la Guarda Reyes
 
Ehealth y Software Libre, una visión
Ehealth y Software Libre, una visiónEhealth y Software Libre, una visión
Ehealth y Software Libre, una visión
Alfonso de la Guarda Reyes
 
Military Research and Development with FLOSS
Military Research and Development with FLOSSMilitary Research and Development with FLOSS
Military Research and Development with FLOSS
Alfonso de la Guarda Reyes
 
GIS
GISGIS
Presentacion Blender
Presentacion BlenderPresentacion Blender
Presentacion Blender
Alfonso de la Guarda Reyes
 
Investigación y Desarrollo Tecnológico con FLOSS en el EPE
Investigación y Desarrollo Tecnológico con FLOSS en el EPEInvestigación y Desarrollo Tecnológico con FLOSS en el EPE
Investigación y Desarrollo Tecnológico con FLOSS en el EPE
Alfonso de la Guarda Reyes
 
Presentacion web2py
Presentacion web2pyPresentacion web2py
Presentacion web2py
Alfonso de la Guarda Reyes
 

Más de Alfonso de la Guarda Reyes (12)

Sis 2015 saludpol
Sis 2015 saludpolSis 2015 saludpol
Sis 2015 saludpol
 
Aplicaciones de E-health para ayuda al diagnostico
Aplicaciones de E-health para ayuda al diagnosticoAplicaciones de E-health para ayuda al diagnostico
Aplicaciones de E-health para ayuda al diagnostico
 
Proyecto COS
Proyecto COSProyecto COS
Proyecto COS
 
Presentacion imagenologia SINPA
Presentacion imagenologia SINPAPresentacion imagenologia SINPA
Presentacion imagenologia SINPA
 
Arquitecturas Libres en E-Health
Arquitecturas Libres en E-HealthArquitecturas Libres en E-Health
Arquitecturas Libres en E-Health
 
Por qué python?
Por qué python?Por qué python?
Por qué python?
 
Ehealth y Software Libre, una visión
Ehealth y Software Libre, una visiónEhealth y Software Libre, una visión
Ehealth y Software Libre, una visión
 
Military Research and Development with FLOSS
Military Research and Development with FLOSSMilitary Research and Development with FLOSS
Military Research and Development with FLOSS
 
GIS
GISGIS
GIS
 
Presentacion Blender
Presentacion BlenderPresentacion Blender
Presentacion Blender
 
Investigación y Desarrollo Tecnológico con FLOSS en el EPE
Investigación y Desarrollo Tecnológico con FLOSS en el EPEInvestigación y Desarrollo Tecnológico con FLOSS en el EPE
Investigación y Desarrollo Tecnológico con FLOSS en el EPE
 
Presentacion web2py
Presentacion web2pyPresentacion web2py
Presentacion web2py
 

Último

Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 

Último (20)

Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 

Ingenieria Reversa de Puertos Series con algo de Python

  • 1.
  • 2.
  • 3. Ingeniería reversa de dispositivos seriales con algo de Python Alfonso de la Guarda Reyes alfonsodg@gmail.com @alfonsodg
  • 4. DISCLAIMER Todo el contenido de esta charla es resultado de investigación con fines didácticos y educativos. El autor no se hace responsable por el uso del conocimiento contenido en la siguiente presentación. La información contenida debe ser utilizada únicamente para fines éticos y con la debida autorización. Todo descubrimiento realizado, ha sido y será usado de forma legal. La audiencia debe asumir todo lo que se exponga hoy, como “falso” y “sin fundamento” hasta que lo compruebe personalmente. Limahack no es el autor directo de ninguno de los descubrimientos expuestos, ni de las herramientas demostradas, ni los conoce. Todas las opiniones vertidas durante esta presentación son exclusivas del expositor, Limahack no es responsable de ninguna de las opiniones vertidas.
  • 5. Todavía hay dispositivos con puertos seriales? SI Como también: paralelos, usb, con puertos propietarios, etc.... Es un estándar de la industria... aunque hoy en día su uso es más especializado
  • 6.
  • 7. Cómo funcionan los puertos serie? ● Interfaz de ● Seguimiento de un comunicaciones digital protocolo, usualmente “estándar” ● Transmisión bit a bit ● Normas RS-232 y RS- ● Los protocolos tienden 422 / Propietarias a emplear secuencias ASCII ● Asíncronos ● Algunos protocolos ● Simplex, Half Duplex y propietarios hacen uso Full Duplex de IO/CTL ● Chips UART
  • 8. Por qué necesito manipular los puertos serie? ● Acceder a funcionalidades particulares de nuestros dispositivos ● Enviar y recibir datos de los mismos (dispositivos) ● En general para controlarlos... hasta el punto en donde el fabricante lo permita
  • 9. Es complicado acceder a los dispositivos por puertos serie? ● Ingredientes: puertos series (emisor/receptor), cable serie, software de comunicaciones, parámetros y (quizás) conocer el protocolo... ● Preparación: mezclar los ingredientes según las especificaciones del fabricante del dispositivo ● Presentación: Hacer lo que deseamos según lo permita el fabricante
  • 10. Y qué sucede cuándo la receta con funciona?
  • 11. Hackeando comunicaciones seriales (preparación) ● Informarnos: buscar todo material relativo al dispositivo y/o hasta de sus chips, cada uno puede revelar valiosa información ● Buscar si hay software que permita comunicarse con el dispositivo de alguna/cualquier manera
  • 12. Hackeando comunicaciones seriales (practicando) ● Verificar pinout de puertos y cables ● Configurar parámetros del puerto ● Probar protocolos o comandos, buscando respuesta de los dispositivos ● “Sniffear” un aplicativo que trabaje con el dispositivo e interpretar las señales / comandos
  • 13.
  • 14. Receta 1: Dispositivo Lector de Tarjetas por Proximidad ● Transmisión síncrona ● Comando de petición de registros ● Comando de validación de recepción con llave para vacío de memoria ● Tramas simples alfanuméricas con código de tiempo e identificación de usuario
  • 15. La experiencia de las radio Tadirant
  • 16. Equipos VHF 9000 / HF 6000 ● Objetivo: Integrar los canales de datos de los equipos a un sistema C4I ● Problema: El fabricante no entregó la información técnica para la integración de los dispositivos (ni quería hacerlo) ● Solución: Aplicar ingeniería reversa al puerto de comunicaciones para replicar el protocolo
  • 17.
  • 18. Communication_Request (COM_REQ) HF-6000 Radio HF HF External (RT/RE-6001 Exciter & Radio Power Antenna Control System Controller) Amplifier Coupler Device Rx Tx Tx Rx Tx Rx Tx Rx MASTER Slave #1 Slave #2 Slave #N
  • 19. Radios Tadirant VHF 9000 ● Con la documentación obtenida se pudo conseguir el pinout para las conexiones ● Se ubicó un software que permitía la transmisión de flujos de vídeo, se procedió al sniffing (monitoreo) de las señales ● El protocolo está basado en señales IO/CTL (secuencias de bits) ● Con la documentación auxiliar se procedió a completar la configuración de los parámetros del equipo ● Comunicaciones independientes del canal o modalidad (salto de frecuencia, etc.)
  • 20.
  • 21. Radios Tadirant HF 6000 No se pudo concluir esta fase, pero se encontró que el pinout era diferente y que algunas de las señales (protocolo) requerían ajustes para cerrar el proceso.... Era una cuestión de días y más pruebas...
  • 22. ...este... y Python dónde está?
  • 23. Y ahora Python... ● Permite prototipado rápido de los protocolos ● Al ser interpretado podemos experimentar con el proceso de la ingeniería reversa paso a paso ● Tiene una magnífica librería para el manejo de puertos seriales
  • 24. Suena bonito, pero... “show me the code” https://bitbucket.org/alfonsodg/radio-data