Un editor hexadecimal (o editor de archivos binarios o editor de bytes ) es un programa informático que permite la manipulación de la fundamental binarios de datos que constituyen un archivo de computadora . El nombre 'hex' proviene de ' hexadecimal ': un formato numérico estándar para representar datos binarios. Un archivo de computadora típico ocupa varias áreas en el medio de almacenamiento, cuyos contenidos se combinan para formar el archivo. Los editores hexadecimales que están diseñados para analizar y editar datos de sector de los segmentos físicos de disquetes o discos duros a veces se denominan editores de sector oeditores de disco .
Detalles
Con un editor hexadecimal, un usuario puede ver o editar el contenido en bruto y exacto de un archivo, en contraposición a la interpretación del mismo contenido que otro software de aplicación de nivel superior puede asociar con el formato de archivo . Por ejemplo, estos podrían ser datos de imagen sin procesar, en contraste con la forma en que el software de edición de imágenes interpretaría y mostraría el mismo archivo.
Los editores hexadecimales se pueden utilizar para corregir datos dañados por problemas del sistema o del programa de aplicación en los que puede que no valga la pena escribir un programa especial para realizar las correcciones. Son útiles para omitir las comprobaciones de edición de aplicaciones que pueden evitar la corrección de datos erróneos. Se han utilizado para "parchear" programas ejecutables para cambiar o agregar 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.
En la mayoría de las aplicaciones de editor hexadecimal, los datos del archivo informático se representan como valores hexadecimales agrupados en 4 grupos de 4 bytes (o dos 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 (por ejemplo, Bell) y los caracteres que ocuparían más de un espacio de carácter (por ejemplo, tabulación) se representan normalmente con un punto (".") En el siguiente campo ASCII.
- Límites de tamaño
A diferencia de los editores de texto convencionales, los editores hexadecimales pueden manejar de manera eficiente archivos con tamaños indefinidos, ya que solo una parte del archivo se carga mientras se examina y se modifica al guardarlo, en lugar de todo el archivo a la vez.
Historia temprana
Desde la invención de las computadoras y sus diferentes usos, se ha creado una variedad de formatos de archivo. En algunas circunstancias especiales, fue conveniente poder acceder a los datos como una serie de dígitos sin procesar. Un programa llamado SUPERZAP (AMASPZAP) estaba disponible para sistemas IBM OS / 360 que podía editar registros de disco sin procesar y también entendía el formato de 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 que se utilizan actualmente manejan datos en unidades o grupos de bytes de 8 bits. Hexadecimal y también octal son comunes porque estos dígitos permiten ver qué bits de un byte están configurados. Hoy en día, la representación decimal en lugar de hexadecimal se está convirtiendo en una segunda opción popular debido a la base numérica más familiar y las herramientas auxiliares adicionales, como los sistemas de plantillas y los inspectores de datos, que reducen los beneficios del formato numérico hexadecimal. [ cita requerida ]
Sistemas de plantillas
Algunos editores hexadecimales ofrecen un sistema de plantilla que puede presentar la secuencia de bytes de un archivo binario de forma estructurada, cubriendo parte o todo el formato de archivo deseado. Por lo general, la GUI de una plantilla es una ventana de herramientas separada junto al editor hexadecimal principal. Algunos sistemas de motor de trampas constan solo de una GUI de plantilla de este tipo.
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 apropiado (por ejemplo, como cadena, color o número decimal). Sin soporte de plantilla, es necesario encontrar el desplazamiento correcto en un archivo donde se almacena el valor que se va a cambiar. Además, la edición hexadecimal sin formato puede requerir la conversión de hexadecimal a decimal, atendiendo al orden de bytes u otras peculiaridades de conversión de tipos de datos.
Las plantillas se pueden almacenar como archivos, por lo que los usuarios pueden intercambiarlas y, a menudo, se comparten públicamente en el sitio web del fabricante. La mayoría, si no todos los editores hexadecimales, definen su propio formato de archivo de plantilla; no existe una tendencia a admitir un estándar o incluso compatibilidad entre los diversos formatos en la naturaleza.
Sistemas de secuencias de comandos
Los editores hexadecimales avanzados tienen sistemas de secuencias de comandos que permiten al usuario crear una funcionalidad similar a una macro como una secuencia de comandos de interfaz de usuario para automatizar tareas comunes. Esto se puede utilizar para proporcionar scripts que parcheen archivos automáticamente (por ejemplo, trampas en juegos, modding o arreglos de productos proporcionados por la comunidad) o para escribir plantillas más complejas / inteligentes.
Los lenguajes de secuencias de comandos varían ampliamente, a menudo desde lenguajes específicos de productos que se asemejan a archivos por lotes de MS-DOS, hasta sistemas que admiten lenguajes de secuencias de comandos completos como Lua o Python .
Sistemas de complementos
Algunos editores selectos tienen un sistema de complementos que permite extender la GUI y agregar nuevas funciones, generalmente cargando bibliotecas de enlaces dinámicos escritas en un lenguaje compatible con C.
Ver también
Referencias
- ^ "SuperZap" . Consultado el 7 de junio de 2015 .
- El proyecto de información de Linux. "Definición del editor hexadecimal" . Consultado el 30 de mayo de 2010 .