stringtranslate.com

editor hexadecimal

Un editor hexadecimal (o editor de archivos binarios o editor de bytes ) es un programa informático que permite la manipulación de los datos binarios fundamentales que constituyen un archivo informático . El nombre "hex" proviene de " hexadecimal ", un formato numérico estándar para representar datos binarios. Un archivo informático típico ocupa múltiples áreas en el medio de almacenamiento, cuyo contenido se combina para formar el archivo. Los editores hexadecimales que están diseñados para analizar y editar datos de sectores de los segmentos físicos de disquetes o discos duros a veces se denominan editores de sectores o editores de discos .

Detalles

Captura de pantalla de un editor hexadecimal común (hexedit de Pascal Rigaux (Pixel))

Con un editor hexadecimal, un usuario puede ver o editar el contenido exacto y sin formato de un archivo, a diferencia de la interpretación del mismo contenido que otras aplicaciones de software de nivel superior pueden asociar con el formato de archivo . Por ejemplo, podrían ser datos de imágenes 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 eludir las comprobaciones de edición de aplicaciones que pueden impedir 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 edición hexadecimal, los datos del archivo de computadora 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 (p. ej., Bell) y los caracteres que ocuparían más de un espacio de carácter (p. ej., tabulación) normalmente se representan 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 eficientemente archivos con tamaños indefinidos, ya que solo se carga una parte del archivo mientras se navega 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 archivos. En algunas circunstancias especiales era conveniente poder acceder a los datos como una serie de dígitos sin procesar. Había disponible un programa llamado SUPERZAP (AMASPZAP) para los sistemas IBM OS/360 que podía editar registros de disco sin formato 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 archivos que se utilizan 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 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 a herramientas auxiliares adicionales, como sistemas de plantillas e inspectores de datos, que reducen los beneficios del formato numérico hexadecimal. [ cita necesaria ]

Sistemas de plantillas

Un ejemplo de un editor hexadecimal sencillo basado en plantillas.

Algunos editores hexadecimales ofrecen un sistema de plantillas que puede presentar la secuencia de bytes de un archivo binario de forma estructurada, cubriendo parte o la totalidad del formato de archivo deseado. Por lo general, la GUI de una plantilla es una ventana de herramientas separada al lado del editor hexadecimal principal. Algunos sistemas de motores de trampas constan únicamente de una plantilla de GUI.

Normalmente, una plantilla se representa como una lista de cuadros de texto etiquetados, de modo que los valores individuales de un archivo se puedan 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 una conversión de hexadecimal a decimal, teniendo en cuenta el orden de los bytes u otras peculiaridades de conversión de tipos de datos.

Las plantillas se pueden almacenar como archivos, para que los usuarios las intercambien 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 ninguna tendencia a admitir un estándar o incluso compatibilidad entre los distintos formatos existentes.

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 secuencias de comandos que parcheen archivos automáticamente (por ejemplo, trampas en juegos, modificaciones o correcciones de productos proporcionadas por la comunidad) o para escribir plantillas más complejas/inteligentes.

Los lenguajes de secuencias de comandos varían ampliamente, 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 [ ¿cuáles? ] tienen un sistema de complementos que permite ampliar la GUI y agregar nuevas funciones, generalmente cargando bibliotecas de enlaces dinámicos escritas en un lenguaje compatible con C.

Ver también

Referencias

  1. ^ "SuperZap" . Consultado el 7 de junio de 2015 .