Definiendo estructuras de datos desconocidas
Cuando tenemos que enfrentarnos a ficheros binarios del tipo ELF, PE, etc, o cualquier otro tipo de fichero cuya estructura es conocida, es “relativamente fácil” extraer mucha información sobre los mismos. Cuando tenemos que lidiar con ficheros o simplemente datos binarios (paquetes de datos de red, datos en memoria, etc) cuya estructura es desconocida, es prácticamente imposible extraer información útil, a menos que le demos forma a los datos de forma que tenga sentido.
Una herramienta que está teniendo bastante atracción últimamente en esta área es Kaitai Struct. Ésta, según su propia definición es un lenguaje declarativo usado para describir estructuras de datos binario, paquetes de red, etc. El proyecto es Open Source, e incluyo un compilador (más bien transpilador), visualizador y algunos ejemplos.
La definición de un formato específico se expresa en el lenguaje Kaitai Struct (se usa la extensión de fichero .ksy). Éste después es “transpilado” (vaya palabra más fea) por withksc en código fuente de alguno de los lenguajes soportado: C++/STL, C#, Java, JavaScript, Perl, PHP, Python o Ruby, (más en el futuro).
Si todo esto es nuevo para ti, en Avatao tienes un pequeño curso introductorio con varios retos a resolver.
En el wiki del proyecto también tienes algunos tutoriales. Para empezar deberías mirarte la documentación oficial.
También tienes la posibilidad de jugar con esta herramienta online.
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec