Editor Hexadecimal Binario | Ver y editar archivos en hexadecimal
Arrastra y suelta un archivo para ver su contenido byte a byte en formato hexadecimal (hex dump). Identifica el tipo real del archivo mediante sus bytes mágicos, edita bytes individuales y descarga el resultado. El archivo nunca se sube a ningún servidor.
Firmas de archivo comunes (números mágicos)
| Formato | Bytes iniciales (hex) | Desplazamiento | Nota |
|---|---|---|---|
| PNG | 89 50 4E 47 0D 0A 1A 0A | 0 | Archivo de imagen. Si coinciden los 8 bytes, se confirma un PNG con casi total certeza |
| JPEG | FF D8 FF | 0 | Archivo de imagen. El cuarto byte varía según la variante (JFIF, Exif, etc.) |
| GIF | 47 49 46 38 39 61 / 47 49 46 38 37 61 | 0 | La cadena ASCII "GIF89a" o "GIF87a" |
| 25 50 44 46 2D | 0 | La cadena ASCII "%PDF-", seguida del número de versión | |
| ZIP / docx / xlsx / jar | 50 4B 03 04 | 0 | Formato ZIP. Office Open XML y muchos formatos de archivo comprimido son internamente ZIP |
| Ejecutable de Windows (EXE/DLL) | 4D 5A | 0 | La cadena ASCII "MZ", una cabecera heredada de MS-DOS que aún persiste en el formato PE |
| Ejecutable ELF | 7F 45 4C 46 | 0 | Ejecutables y bibliotecas compartidas usados en Linux y sistemas similares |
Consejos para usar el editor hexadecimal
- Para desenmascarar un archivo cuya extensión fue cambiada, compara sus bytes iniciales (bytes mágicos) con la tabla anterior. La extensión es solo una etiqueta, pero los bytes mágicos provienen del propio formato y son mucho más difíciles de falsificar.
- En el modo de hexadecimal manual puedes pegar secuencias de bytes copiadas de otras herramientas (separadas por espacios o por saltos de línea, ambas funcionan) y cargarlas directamente.
- Si haces clic en la celda equivocada mientras editas, pulsa Esc para cancelar la edición de esa celda sin modificar el byte.
- Al depurar un protocolo binario, compara en esta herramienta los bytes esperados frente a los realmente enviados o recibidos para localizar con precisión dónde difieren.
Preguntas frecuentes
FF D8 FF, es muy probable que sea una imagen JPEG, independientemente de su extensión.
A propósito — Por qué la verdadera identidad de un archivo está en sus bytes, no en su extensión
La extensión de un archivo es solo una pista que indica al sistema operativo con qué aplicación abrirlo; es una etiqueta que existe de forma independiente del contenido real del archivo. Renombrar `foto.jpg` a `notas.txt` no lo convierte en texto, y quitarle la extensión a una imagen real no borra los datos de la imagen subyacente. Precisamente porque esta etiqueta es, en esencia, una autodeclaración, el malware lleva mucho tiempo aprovechándola para disfrazar ejecutables como inofensivas imágenes o documentos.
Para evitar este problema, la mayoría de los formatos de archivo incorporan un identificador único —llamado bytes mágicos o número mágico— en sus primeros bytes. Un archivo PNG, por ejemplo, siempre comienza con la secuencia exacta de 8 bytes `89 50 4E 47 0D 0A 1A 0A` tal como define la especificación. Esto significa que un sistema operativo o una aplicación solo pueden estar realmente seguros del formato de un archivo tras inspeccionar su contenido real, no su nombre. Tanto el comando `file` de Unix como la detección de tipo MIME de los navegadores se basan principalmente en comparar estos bytes mágicos en lugar de confiar en la extensión.
Algunas secuencias de bytes mágicos esconden un ingenioso detalle histórico. Los 8 bytes del PNG incluyen deliberadamente una secuencia de fin de línea (0D 0A) precisamente para que las transferencias en modo texto —que a veces alteran los saltos de línea— puedan detectarse como corruptas. Lejos de ser un simple identificador arbitrario, cumple también la función de una comprobación de integridad incorporada, un pequeño detalle que revela cuánta reflexión hay detrás del diseño de los formatos binarios.