Operaciones binarias y hexadecimales con xxd en GNU/Linux

En el artículo de hoy os voy a hablar de la herramienta xxd, que nos permitirá crear un volcado hexadecimal de un ficheros o entrada estándar. Este comando también permite convertir un volcado hexadecimal de nuevo a su forma binaria.

Esta herramienta la he conocido a raíz de un comentario de un usuario en la web. Gracias a él y a todos los que hacéis posible este proyecto con vuestras visitas y feedback.

Xxd, una herramienta para trabajar con código binario y hexadecimal

GNU/Linux nos brinda gran cantidad de productos para la manipulación hexadecimal y binaria. Xxd es uno de los más populares.

Personalmente me recuerda mucho a “Norton Commander” Programa que utilizaba en los años noventa del siglo pasado, en el sistema MS-DOS que tenía instalado en el equipo con procesador 286. Mis hermanos y yo lo utilizábamos para ver y modificar los ficheros de los juegos. Como por ejemplo cambiar las características de los jugadores en el juego “Italia 90

Xxd ya viene preinstalado en la mayoría de las distribuciones GNU/Linux, para ver sus principales características y funcionamiento debemos escribir:

  1. $ xxd -h

Tal y como se muestra en la imagen:

Salida del comando xxd (click en la imagen para ampliar)

La sintaxis para trabajar con el comando es:

  1. $ xxd [opciones] [fichero de entrada [fichero de salida]]

Volcado a hexadecimal

Podemos volcar a hexadecimal un fichero, simplemente indicando el nombre del archivo. En el ejemplo volcaremos un fichero ‘Makefile’

  1. $ xxd Makefile.in

Con el resultado:

Funcionamiento xxd (click para ampliar)

Volcar desde la línea de comandos o entrada estándar

También podemos interactuar directamente con el comando, desde la línea de comandos, escribiendo:

  1. $ xxd –

Si queremos salir de programa debemos utilizar la combinación de CTRL+D

Tal y como se muestra en la imagen

Volcado interactivo (click para ampliar)

Establecer índice de inicio

Mientras se descargan desde un archivo, puede haber una gran cantidad de datos que no nos interesan. Así que simplemente los saltamos. Xxd proporciona la opción -s para saltar al índice especificado. En este ejemplo, omitiremos las primeras 5 líneas y comenzaremos desde 6. línea.

Como sigue:

  1. $ xxd -s 0x50 Makefile.in

Una muestra:

Saltar a una línea específica en Xxd

También podemos acotar la información mostrada entre un índice de inicio y otro de final. Añadiendo el parámetro -l, de esta manera:

  1. $ xxd -s 0x50 -l 0x100 Makefile.in

El resultado tal y como se muestra en la imagen:

Acotar el resultado (click en la imagen para ampliar)

Por último, que no menos importante, podemos cambiar el tamaño de información mostrada en la columna, que por defecto es 16. Podemos modificar este valor con el parámetro -c , que proporciona el valor de longitud.  Vamos a cambiar dicho valor a 24.

  1. $ xxd -s 0x50 -l 0x100 -c 24 Makefile.in

Con el resultado:

Modificamos el valor de los octetos (click para ampliar)

Y esto es todo. Espero que os haya parecido interesante.

Fuentes consultadas:

Poftut.com – How To Use Linux Xxd Command Tutorial For Hex and Binary Operations With Example?