
Un editor hexadecimal ( o de bytes ) es un software que permite editar datos en formato binario . Resulta especialmente útil para editar datos ilegibles de un archivo , pero puede utilizarse con cualquier tipo de datos. Generalmente, un editor hexadecimal es un programa independiente y su experiencia de usuario es similar a la de un editor de texto . El usuario puede ver y editar el contenido original y exacto de un archivo, a diferencia de la interpretación que otros programas de nivel superior puedan asociar al formato del archivo . Por ejemplo, podría tratarse de los bytes que representan una imagen en lugar de una representación gráfica.
Generalmente, los datos se agrupan en 4 grupos de 4 bytes o 2 grupos de 8 bytes, seguidos de un grupo de 16 caracteres ASCII imprimibles que corresponden a cada par de valores hexadecimales (cada byte). Los caracteres ASCII no imprimibles se representan normalmente con un punto ("") en el campo ASCII.
En ocasiones, se utiliza un editor hexadecimal para corregir problemas de corrupción de datos . Puede resultar útil para eludir las comprobaciones de edición de la aplicación, que podrían impedir la corrección de datos erróneos. También se ha utilizado para "parchear" programas ejecutables (modificar o añadir algunas instrucciones) como alternativa a la recompilación. Las correcciones de programas para sistemas mainframe de IBM a veces se distribuyen como parches en lugar de distribuir una copia completa del programa afectado.
Historia temprana
Desde la invención de las computadoras y sus diferentes usos, se ha creado una variedad de formatos de archivo. En ciertas circunstancias especiales, era conveniente poder acceder a los datos como una serie de dígitos sin procesar. Un programa llamado SUPERZAP (AMASPZAP) estaba disponible para los sistemas IBM OS/360 que podía editar registros de disco sin procesar y también entendía el formato de los archivos ejecutables. [ 1 ] Los pares de dígitos hexadecimales (cada par puede representar un byte) son el estándar actual, porque la gran mayoría de las máquinas y formatos de archivo en uso hoy en día manejan datos en unidades o grupos de bytes de 8 bits. El hexadecimal y también el octal son comunes porque estos dígitos permiten ver qué bits en un byte están activados. Dependiendo del contenido de los datos, la base decimal u otra base numérica en lugar de la representación hexadecimal puede admitir operaciones de edición también usando sistemas de plantillas e inspectores de datos.
Sistemas de plantillas

Algunos editores hexadecimales ofrecen un sistema de plantillas que permite visualizar la secuencia de bytes de un archivo binario de forma estructurada, abarcando parte o la totalidad del formato de archivo deseado. Generalmente, la interfaz gráfica de usuario (GUI) de una plantilla es una ventana de herramientas independiente junto al editor hexadecimal principal. Algunos sistemas de trucos para hackear archivos consisten únicamente en dicha GUI de plantillas.
Normalmente, una plantilla se representa como una lista de cuadros de texto etiquetados, de modo que los valores individuales de un archivo se pueden editar fácilmente en el formato adecuado (por ejemplo, como cadena de texto, color o número decimal). Sin soporte para plantillas, es necesario encontrar la posición exacta en el archivo donde se almacena el valor que se desea modificar. Además, la edición hexadecimal directa puede requerir la conversión de hexadecimal a decimal, teniendo en cuenta el orden de los bytes u otras particularidades de la conversión de tipos de datos.
Las plantillas se pueden almacenar como archivos, lo que permite su intercambio entre usuarios, y a menudo se comparten públicamente a través del sitio web del fabricante. La mayoría de los editores hexadecimales, si no todos, definen su propio formato de archivo de plantilla; no existe una tendencia a adoptar un estándar ni a garantizar la compatibilidad entre los distintos formatos disponibles.
Sistemas de scripting
Los editores hexadecimales avanzados cuentan con sistemas de scripting que permiten al usuario crear funcionalidades similares a macros mediante secuencias de comandos de interfaz para automatizar tareas comunes. Esto se puede utilizar para generar scripts que parcheen archivos automáticamente (por ejemplo, para solucionar problemas de trucos en juegos, modificaciones o correcciones de productos aportadas por la comunidad) o para escribir plantillas más complejas e inteligentes.
Los lenguajes de scripting varían ampliamente, desde lenguajes específicos de productos que se asemejan a los archivos por lotes de MS-DOS, hasta sistemas que admiten lenguajes de scripting completos como Lua o Python .
Sistemas de complementos
Algunos editores selectos cuentan con un sistema de complementos que permite extender la interfaz gráfica de usuario y agregar nuevas funcionalidades, generalmente cargando bibliotecas de enlace dinámico escritas en un lenguaje compatible con C (los diferentes sistemas operativos adoptan formatos de biblioteca de enlace dinámico distintos: DLL para Windows, SO para Linux y Dylib para macOS).
Véase también
Referencias
- ↑ «SuperZap» . Consultado el 7 de junio de 2015 .
Enlaces externos
- El Proyecto de Información de Linux. "Definición del editor hexadecimal" . Consultado el 30 de mayo de 2010 .
- Datos informáticos
- Editores hexadecimales
- sistema numérico hexadecimal
- Tipos de software de utilidad