El comando xxd en Linux: crear y revertir volcados hexadecimales

Introducción

El comando xxd es una herramienta versátil presente en casi todas las distribuciones Linux que permite crear volcados hexadecimales de archivos y, al mismo tiempo, revertir ese proceso para obtener el archivo original. Su sintaxis sencilla y sus múltiples opciones lo convierten en un aliado indispensable para desarrolladores, administradores de sistemas y cualquiera que necesite inspeccionar o modificar datos a nivel binario.

¿Qué es xxd?

Originalmente parte del paquete vim, xxd funciona como un convertidor entre representación binaria y hexadecimal. Puede mostrar el contenido de un archivo en formato hexadecimal con direcciones offset y representación ASCII, o bien leer un volcado hexadecimal y reconstruir el binario.

Crear un volcado hexadecimal

Para generar un volcado básico basta con redirigir la salida de xxd a un archivo:

  • xxd archivo > archivo.hex
  • xxd -p archivo > archivo.hex (salida plana, solo hexadecimal sin direcciones)
  • xxd -c 16 archivo > archivo.hex (define el número de bytes por línea, por defecto 16)

Opciones útiles al crear volcados

  • -l longitud: limita la salida al número especificado de bytes.
  • -s offset: inicia el volcado desde un desplazamiento determinado (en decimal, octal con 0o o hexadecimal con 0x).
  • -u: emplea letras mayúsculas para los dígitos A‑F, lo que puede mejorar la legibilidad en ciertos contextos.

Revertir un volcado hexadecimal

El proceso inverso se realiza con la opción -r (revert). Dependiendo del formato del volcado se usan variantes:

  • xxd -r archivo.hex > archivo (revertir un volcado con direcciones y ASCII)
  • xxd -r -p archivo.hex > archivo (revertir un volcado plano, solo hexadecimal)

Ejemplos prácticos

A continuación algunos escenarios donde xxd resulta particularmente útil:

  1. Inspeccionar la cabecera ELF de un ejecutable: xxd -l 64 /bin/ls muestra los primeros 64 bytes, suficientes para ver el número mágico y el tipo de archivo.
  2. Modificar un byte específico: crear un volcado, editar el valor hexadecimal con un editor de texto y volver a empaquetarlo con xxd -r.
  3. Comparar dos binarios sin ejecutarlos: generar volcados planos y usar diff para detectar diferencias a nivel de bytes.

Consejos y buenas prácticas

  • Siempre trabaja sobre una copia de seguridad del archivo original antes de aplicar cambios mediante volcados.
  • Utiliza xxd -p cuando necesites un flujo puro de hexadecimal para canalizarlo a otras herramientas como grep o sed.
  • Combina xxd con od o hexdump según prefieras la representación offset o el formato plano.

Conclusión

El comando xxd es una herramienta ligera pero potente que simplifica la creación y reversión de volcados hexadecimales en Linux. Dominar sus opciones básicas y avanzadas te permitirá inspeccionar, depurar y modificar datos binarios con precisión, ahorrando tiempo y evitando errores en tareas de bajo nivel.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol