stringtranslate.com

Editor hexadecimal

Un editor hexadecimal (o editor de archivos binarios o editor de bytes ) es un programa informático que permite manipular 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 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 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 procesar 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, 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 de los programas de aplicación en los que no valga la pena escribir un programa especial para realizar las correcciones. Son útiles para eludir las comprobaciones de edición de la aplicación, lo que puede impedir la corrección de datos erróneos. Se han utilizado para "reparar" programas ejecutables para cambiar 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.

En la mayoría de las aplicaciones de edición hexadecimal, los datos del archivo de la 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 (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 se carga una parte del archivo mientras se explora 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 han creado diversos formatos de archivos. En algunas 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 archivos en uso hoy 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 configurados. Hoy, la representación decimal en lugar del hexadecimal se está volviendo una segunda opción popular debido a la base numérica más familiar y a las herramientas de ayuda 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

Un ejemplo de un editor hexadecimal simple 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 interfaz gráfica de usuario de una plantilla es una ventana de herramientas independiente junto al editor hexadecimal principal. Algunos sistemas de Cheat Engine consisten únicamente en una interfaz gráfica de usuario de plantilla de este tipo.

Por lo general, 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 adecuado (por ejemplo, como cadena, color o número decimal). Sin el soporte de plantillas, 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, teniendo en cuenta el orden de bytes u otras peculiaridades de conversión de tipos de datos.

Las plantillas se pueden almacenar como archivos, que los usuarios pueden intercambiar y que, 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 admitir un estándar o incluso compatibilidad entre los distintos formatos que existen.

Sistemas de scripting

Los editores hexadecimales avanzados tienen sistemas de scripts que permiten al usuario crear funciones similares a las de las macros 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 el juego, modificaciones o correcciones de productos proporcionadas por la comunidad) o para escribir plantillas más complejas/inteligentes.

Los lenguajes de script 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 script completamente desarrollados como Lua o Python .

Sistemas de complementos

Algunos editores seleccionados [ ¿cuáles? ] tienen un sistema de complementos que permite ampliar la GUI y agregar nueva funcionalidad, generalmente cargando bibliotecas de vínculos dinámicos escritas en un lenguaje compatible con C.

Véase también

Referencias

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