Docuboxer
Por Sergio Alonzo Piña··7 min de lectura

La extensión no dice qué es un archivo (magic bytes sí)

Renombrar un .exe a .pdf no cambia lo que es. Qué son los magic bytes, por qué Windows te la puede colar y cómo verificar un archivo sin abrirlo.

La extensión de un archivo es solo texto después de un punto: la cambias en dos segundos y el contenido no se mueve ni un byte. Lo que un archivo es de verdad lo dicen sus primeros bytes —la firma, o magic bytes—, y esos no se tocan al renombrar. Un .exe que alguien renombra a .pdf sigue siendo un ejecutable de Windows. Puedes comparar la extensión con el tipo real de un archivo en tu propio navegador, sin subirlo a ningún servidor.

Qué es un magic byte

Casi todos los formatos binarios empiezan por una secuencia fija que actúa como carné de identidad. Se llama firma o número mágico, ocupa entre dos y ocho bytes y está dentro del archivo, no en su nombre. Estas son las que más te vas a encontrar:

  • PDF — %PDF- (hex 25 50 44 46 2D). Es texto legible: si abres un PDF con un editor de texto, la primera línea empieza así.
  • PNG — 89 50 4E 47 0D 0A 1A 0A, que se lee como \x89PNG seguido de saltos de línea. Los bytes raros del principio y del final están puestos a propósito para detectar transferencias que corrompen el archivo.
  • JPEG — FF D8 FF.
  • GIF — GIF87a o GIF89a, también legible.
  • ZIP — PK (50 4B 03 04), por Phil Katz, autor del formato. Y aquí está lo interesante: .docx, .xlsx, .pptx, .odt, .jar, .apk y .epub son ZIP por dentro, así que todos empiezan por PK.
  • Ejecutable de Windows (.exe, .dll, .scr) — MZ (4D 5A), las iniciales de Mark Zbikowski, el ingeniero de Microsoft que diseñó el formato.
  • Ejecutable de Linux — 7F 45 4C 46, es decir ELF precedido de un byte de control.
  • Documentos Office antiguos (.doc, .xls, .ppt) — D0 CF 11 E0 A1 B1 1A E1, el contenedor OLE2.

Los sistemas Unix llevan décadas usando esto: el comando file ignora por completo el nombre y responde según los bytes. Es exactamente la comprobación que necesitas cuando un archivo te da mala espina.

La extensión decide quién abre el archivo, no qué es

Windows elige el programa que abre un archivo casi exclusivamente por su extensión, mediante una tabla de asociaciones en el registro. Doble clic en algo terminado en .exe y el sistema lo ejecuta; doble clic en algo terminado en .pdf y llama al lector de PDF. Esa decisión se toma antes de mirar el contenido.

De ahí sale una asimetría que conviene entender bien. Si renombras un ejecutable a .pdf, el doble clic ya no lo ejecuta: se lo pasa al lector de PDF, que fallará al no encontrar un %PDF- al principio. El archivo no se ha vuelto inofensivo —basta devolverle la extensión o lanzarlo desde la consola—, pero ese desajuste es una alarma enorme: nadie renombra archivos así por accidente. macOS y Linux se apoyan más en el contenido y en los metadatos del sistema, aunque también usan la extensión como pista.

El truco de la doble extensión

El engaño clásico no consiste en renombrar un ejecutable a documento, sino al revés: llamarlo factura.pdf.exe. El sistema lee la última extensión, .exe, y lo ejecuta. El usuario lee la primera y cree que abre una factura.

Funciona porque el Explorador de Windows oculta por defecto las extensiones de los tipos conocidos, y .exe lo es. El nombre en pantalla queda literalmente en factura.pdf. Si a eso le sumas un icono de PDF incrustado en el propio ejecutable —cambiar el icono es trivial—, el disfraz es completo. La primera medida defensiva es activar "Extensiones de nombre de archivo" en la pestaña Vista del Explorador y dejarlo activado para siempre.

Existe una variante más sucia que se apoya en un carácter Unicode de cambio de dirección de texto (U+202E) insertado en mitad del nombre: la parte posterior se dibuja al revés, y un archivo cuyo nombre real termina en .exe puede mostrarse en pantalla como si terminara en .pdf. Contra este ni siquiera sirve leer bien: hay que mirar el contenido.

Cuándo la firma no está al principio (y cuándo no hay firma)

La regla tiene excepciones que conviene conocer para no sacar conclusiones falsas:

  • Firmas desplazadas. Los vídeos MP4 y derivados llevan ftyp en el byte 4, no en el 0. Los archivos .tar llevan ustar en el byte 257.
  • Formatos sin firma. Un .txt, un .csv, un .json, un .html o un .svg son texto plano sin número mágico. Ahí lo único posible es analizar la estructura, y eso siempre es una heurística: un CSV mal formado y un texto cualquiera son indistinguibles a nivel de bytes.
  • Firmas compartidas. Ver PK te dice que es un contenedor ZIP, no si dentro hay una hoja de cálculo, una app Android o un ejecutable comprimido. El siguiente paso es listar el contenido del ZIP.

Ese último punto tiene un caso práctico frecuente: un archivo que se anuncia como .docx pero empieza por D0 CF 11 E0 en lugar de PK no es un documento moderno, sino un contenedor OLE2 antiguo con extensión falsa — el formato donde viven las macros de toda la vida. Es de los desajustes que más merece la pena mirar dos veces.

Entropía: por qué un ejecutable empaquetado parece cifrado

La entropía mide cuánta información aporta cada byte, en una escala de 0 a 8. Un texto en castellano ronda 4 o 5: hay muchísimas repeticiones y patrones. Un archivo comprimido o cifrado se acerca a 8, porque comprimir bien consiste precisamente en eliminar toda repetición y el resultado es indistinguible del ruido.

Por eso un ejecutable normal, que ronda valores medios, dispara la lectura cuando está empaquetado: los packers comprimen o cifran el código real y añaden un pequeño cargador que lo descomprime en memoria al arrancar. Es una técnica legítima —reducir tamaño, dificultar la copia— y también la habitual para dificultar el análisis. Sé honesto con lo que este número significa: un ZIP legítimo, un JPEG y un ejecutable empaquetado dan lecturas parecidas. La entropía alta no acusa a nadie; solo indica que dentro no hay texto plano. Es un dato de contexto, nunca un veredicto.

Cómo verificar un archivo sin abrirlo

El orden que funciona, de menos a más esfuerzo:

  • Compara extensión y firma. El inspector de archivos lee los primeros bytes, te dice el tipo real, mide la entropía y, si es un ZIP, lista lo que hay dentro. Todo en el navegador: el archivo no se sube.
  • Calcula el hash. El generador de hashes te da el SHA-256 del archivo. Sirve para dos cosas: comprobar que una descarga coincide con el hash que publica el fabricante, y buscar ese hash en servicios de reputación sin entregarles el archivo. Buscar por hash no revela tu contenido; subir el archivo, sí.
  • Si de verdad es un PDF, mira dentro. Que la firma sea correcta no cierra el asunto: un PDF auténtico puede llevar JavaScript, acciones automáticas y adjuntos. El analizador de PDF enumera esos marcadores.
  • Si es una imagen, revisa los metadatos. Con el visor EXIF ves qué lleva pegado: coordenadas GPS, modelo de cámara, fecha real. Útil tanto para verificar procedencia como para limpiar lo que no quieres compartir.

Y la advertencia que sostiene todo lo anterior: coincidir no es lo mismo que ser seguro. Comparar la extensión con los magic bytes descarta el disfraz, que es el engaño más común y más barato de montar. No dice nada sobre si el contenido, siendo del tipo que dice ser, hace algo que no quieres. Ninguna comparación de firmas sustituye al antivirus, y ningún antivirus sustituye a no abrir cosas que no esperabas recibir.

Preguntas frecuentes

¿Renombrar un .exe a .pdf lo vuelve inofensivo?

No. Renombrar solo cambia el texto del nombre; los bytes del archivo son exactamente los mismos y siguen siendo un ejecutable. Lo único que cambia es qué programa intenta abrirlo al hacer doble clic. Devolverle la extensión original, o lanzarlo desde una consola, lo ejecuta igual que antes.

¿Qué son exactamente los magic bytes de un archivo?

Son los primeros bytes del contenido, que la mayoría de formatos usan como firma de identidad: un PDF empieza por %PDF-, un PNG por 89 50 4E 47, un ZIP por PK y un ejecutable de Windows por MZ. Están dentro del archivo, así que sobreviven a cualquier cambio de nombre o de extensión.

¿Por qué Windows me enseña factura.pdf si el archivo es factura.pdf.exe?

Porque el Explorador de Windows oculta por defecto las extensiones de los tipos conocidos, y .exe es uno de ellos. El nombre real termina en .exe, pero en pantalla solo ves lo que queda delante: factura.pdf. Se corrige activando «Extensiones de nombre de archivo» en la pestaña Vista del Explorador.

Si la extensión coincide con los magic bytes, ¿el archivo es seguro?

No. Que la firma coincida solo significa que el archivo es del tipo que dice ser; un PDF auténtico puede llevar JavaScript y un .docx legítimo puede llevar macros. Coincidir descarta el engaño más burdo, no el contenido peligroso. Limpio en la comparación no equivale a seguro.

¿Qué hago si la extensión y el tipo real no coinciden?

Trátalo como sospechoso y no lo abras haciendo doble clic. Un desajuste tiene explicaciones inocentes —una imagen guardada con la extensión equivocada, un .docx antiguo renombrado— pero un archivo que llega por correo o descarga anunciándose como documento y resulta ser un ejecutable no tiene ninguna lectura benigna.

¿Puedo comprobar el tipo real de un archivo sin subirlo a ningún servicio?

Sí. Leer los primeros bytes no requiere servidor: el inspector de archivos de Docuboxer abre el archivo en tu navegador, compara la firma con la extensión, calcula los hashes y lista el contenido si es un ZIP. El archivo nunca sale de tu equipo.

Mira qué es de verdad ese archivo

Extensión contra magic bytes, hashes y contenido de ZIP. En tu navegador, sin subir nada.

Abrir inspector de archivos →

Herramientas relacionadas

También te puede interesar: qué revela una foto sobre ti y qué revela la metadata de un PDF.