Usando un editor hexadecimal en Linux

Usando un editor hexadecimal en Linux

Probablemente esté familiarizado con la noción de un editor de texto: Linux tiene muchos, tanto para la terminal como para el escritorio. Las opciones de la línea de comandos incluyen vi y nano, y en el escritorio, hay aplicaciones como gedit y Kate. Pero, ¿qué sucede 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 (hex). 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 la forma en que aprendemos matemáticas cuando somos niños, ya que tenemos diez dedos! Un byte de la memoria de la computadora o del 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 Podrías 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». Así que 0x91 no es noventa y uno, sino 145. Son 9 lotes de 16 más 1. En hexadecimal, los números van 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 en la 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 comando simple. Para instalarlo en Ubuntu, escriba lo siguiente en una terminal:

sudo apt-get install hexcurse

Para probar hexcurses, escriba lo siguiente:

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

hexcurse-bin-ls

Utilice las teclas de flecha, página arriba y página 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 utilizando un editor hexadecimal es editar uno de sus propios archivos (y no un archivo del sistema). Use nano para crear un programa C simple:

Corta y pega el siguiente código:

#include
 
main()
{
    printf("Hello Make Tech Easier!\n");
}

Compilar el programa:

Ahora puede invocar con seguridad hexcurse en el binario «hola» resultante. Si rompes el binario, no importará:

maleficio-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 navegue 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 con «Ctrl + s» y salga con «Ctrl + q». Ahora puede ejecutar el binario «hola» y verá que el resultado es «¡HOLA, haga que la tecnología sea más fácil!» 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, utilice:

sudo apt-get install ghex

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

El programa funciona de una manera muy similar a «hexcurse». Puede navegar con las teclas de flecha, subir y bajar 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 utilícelas con cuidado. Si tiene alguna pregunta sobre «hexcurse» o «ghex», no dude en hacerla en la sección de comentarios y veremos si podemos ayudarlo.

Experto Geek - Tu Guía en Tendencias Tecnológicas