Usando un editor hexadecimal en Linux

Probablemente esté familiarizado con la noción de un editor de texto: Linux tiene muchos de ellos, tanto para el terminal como para el escritorio. Las opciones de la línea de comandos incluyen vi y nano, y mientras están en el escritorio, hay aplicaciones como gedit y Kate. Pero, ¿y si necesita editar un archivo binario? ¿Qué puedes usar? Existe una clase de editor conocido como «editor hexadecimal» que le permite editar cualquier tipo de archivo, especialmente archivos binarios.

Los editores hexadecimales obtienen su nombre porque el contenido del archivo se muestra principalmente como números hexadecimales (hexadecimales). Normalmente contamos en base 10, lo que significa que cada dígito (o columna) representa un factor de 10. Entonces 123 son 3 unidades, 2 lotes de 10 (es decir, 20) y 1 lote de 100 (es decir, 100). ¡Eso es genial y perfecto para aprender matemáticas cuando somos niños, ya que tenemos diez dedos! Un byte de memoria de la computadora o de almacenamiento en disco puede representar un número hasta el valor de 255. El problema con la base 10 es que necesita 3 dígitos para mostrar 255. Sin embargo, en realidad no tiene que representar el valor en base 10 Puede representarlos en binario (es decir, base 2) o en hexadecimal (es decir, base 16). En hexadecimal, cada dígito o columna representa un factor de 16 y no de 10. Para distinguir entre números hexadecimales y números decimales, los hexadecimales normalmente tienen el prefijo «0x». Entonces 0x91 no es noventa y uno, sino 145. Son 9 lotes de 16 más 1. En hexadecimal, los números son así: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12 y así sucesivamente. La ventaja de este sistema es que 255 (el valor máximo de un byte) se puede escribir como 0xFF (15 lotes de 16 más 15).

Un editor hexadecimal utiliza estas representaciones de dos dígitos para proporcionar una cuadrícula simple que se puede navegar fácilmente, algo que sería más difícil con números decimales de 3 dígitos.

Hay varios editores hexadecimales diferentes disponibles para Linux y, al igual que los editores de texto, algunos están diseñados para funcionar en la terminal y otros desde el escritorio. Hexcurse es un editor de texto de línea de comandos simple. Para instalarlo en Ubuntu, escriba lo siguiente en una terminal:

Para probar hexcurses, escriba lo siguiente:

Eso lanzará el programa y cargará el binario «ls» que se encuentra en «/ bin».

hexcurse-bin-ls

Utilice las teclas de flecha, página hacia arriba y hacia abajo para navegar por la cuadrícula de números hexadecimales. Si escribe un número, el byte en ese punto se cambiará al número que ingresó. No intente esto ahora, de lo contrario podría romper el comando «/ bin / ls». Si presiona TAB, el cursor saltará al lado ASCII (texto) y podrá cambiar los valores ingresando nuevas letras, números y símbolos. Aquí hay una lista de las claves esenciales para usar hexcurse:

  • F2 o CTRL + s – Guardar
  • F3 o CTRL + o – Abrir
  • F4 o CTRL + g – Ir a
  • F5 o CTRL + f – Buscar
  • F8 o CTRL + q – Salir

La mejor manera de experimentar con seguridad usando un editor hexadecimal es editar uno de sus propios archivos (y no un archivo del sistema). Utilice nano para crear un programa C simple:

Corta y pega el siguiente código:

Compila el programa:

Ahora puede invocar de forma segura hexcurse en el binario «hola» resultante. Si rompe el binario, no importará:

hexadecimal-hola

Desplácese hacia abajo hasta que vea la cadena «¡Hola, haga que la tecnología sea más fácil!» en la sección de la derecha. Presione TAB para cambiar a la edición ASCII y navegar hasta la palabra «Hola». Escriba la palabra «HOLA». Observe que la cadena cambia en la sección de la derecha y los números hexadecimales cambian en el lado izquierdo. Los nuevos números hexadecimales deben ser «48 45 4C 4C 4F», que son los valores ASCII para «HOLA».

Ahora guarde el archivo usando «Ctrl + s», y salga con «Ctrl + q». Ahora puede ejecutar el binario «hola» y verá que la salida es «¡HOLA ¡Facilite la tecnología!» y no «¡Hola, haz que la tecnología sea más fácil!» Esto se debe a que editó el binario y cambió la cadena.

ghex es un editor hexadecimal de escritorio. Para instalarlo, use:

Se puede iniciar desde el lanzador o desde la línea de comandos. Para editar el tipo binario «hola»:

El programa funciona de manera muy similar a «hexcurse». Puede navegar con las teclas de flecha, avanzar y retroceder una página. TAB cambia entre editar el hexadecimal o el texto. «Ctrl + s» guarda el archivo y así sucesivamente. Dado que es una aplicación de escritorio, hay una barra de menú que enumera las otras operaciones.

ghex-hola

Estas herramientas pueden ser muy poderosas, pero también es fácil corromper archivos binarios, así que úselas con cuidado. Si tiene alguna pregunta sobre “hexcurse” o “ghex”, no dude en preguntar en la sección de comentarios y veremos si podemos ayudarlo.