¿EXE siempre se puede reemplazar con COM?

53

Avance

Nuestro software antivirus no me permitió copiar un archivo EXE en mi carpeta de inicio de Windows 7 (por ejemplo, calc.exe) ya que es un archivo EXE

Así que le cambié el nombre a un archivo COM y luego lo copié y lo permitió (muy profesional).

Y, por supuesto, calc.comfunciona.

Lo que me llevó a preguntar (solo por curiosidad):

Pregunta

¿Cuándo no se ejecutará un programa EXE cuando se le cambie el nombre a COM? Casi todos los archivos exe que he verificado funcionaron.

Me encantaría conocer los aspectos internos de por qué y por qué no.

Royi Namir
fuente
42
No copie archivos en la carpeta Inicio, cree accesos directos en su lugar.
gronostaj
44
Sí, esto es posible, pero como dije, los internos me interesaron. No el estúpido AV. :-)
Royi Namir
11
También puede cambiarle el nombre a .scr (protector de pantalla) y funcionará.
pjc50
2
No es un estúpido AV (aparte de no entender que un archivo con una extensión com todavía puede interpretarse como un archivo PE). No debe colocar ejecutables en lugares en los que se pueda escribir fácilmente; idealmente, solo desea que el administrador (con un token de administrador) pueda escribir en el mismo directorio donde tiene ejecutables. Use atajos :)
Luaan
1
@Luaan No veo cómo excluir EXEs y permitir accesos directos en Inicio es de alguna manera más seguro que permitir EXE y accesos directos. Me parece comparable.
jrw32982 apoya a Monica el

Respuestas:

10

Tiene que ver con el formato interno del archivo. Originalmente, los archivos .com eran imágenes de memoria simples y los archivos .exe tenían muchos encabezados asociados. Como resultado, no pudo cambiarles el nombre. A medida que pasó el tiempo y tuvieron que hacer que las cosas fueran compatibles con versiones anteriores, Microsoft lo cambió para que el sistema operativo mire el archivo en sí mismo para determinar qué tipo de archivo es en lugar de la extensión. Como resultado, cuando ejecuta el archivo renombrado, Windows ignora por completo la extensión. Consulte los enlaces a continuación para obtener una explicación más extensa.

Pregunta similar

Explicación del blog de Microsoft

Hombre de matemáticas
fuente
1
Caramba. ¿Quién más pensó en eso? ... UNIX / Linux.
Joe
1
@ Joe Cualquier sistema que haya crecido orgánicamente, sí. Los archivos COM existían mucho antes que los ejecutables portátiles, y estuvieron perfectamente bien durante bastante tiempo.
Luaan
@Luaan Por supuesto que tienes razón. Estaba creando / usando archivos com en CP / M (donde 64k de ram nunca fue un problema para mí). Es interesante cuando un sistema operativo copia algo de otro que acertó desde el principio, especialmente cuando lo menospreciaron por tanto tiempo.
Joe
@ Joe Como fanático de Linux, me gusta la forma en que usa las propiedades en lugar de las extensiones.
Math Man
Factoid aleatorio, pero los archivos .COM reales (MS-DOS y CP / M original) se limitaron a un tamaño de archivo de segmento (64 kb) ya que la imagen se copió directamente en un segmento y se ejecutó. Cuanto más sepa, etc ...
0x90h