Windows 95: así protegía archivos de instalaciones

Fuentes: Windows 95 defenses against installers that overwrite a file with an older version - The Old New Thing

En los primeros días de Windows, cuando la arquitectura de 16 bits era predominante, muchos componentes del sistema operativo eran redistribuibles. Esto significaba que los programas podían incluir copias de estos componentes y instalarlos como parte de su propio proceso de instalación. La práctica recomendada era que, al encontrar un componente ya instalado, el instalador debía comparar las versiones del archivo existente y el nuevo, sobrescribiendo solo si la versión del instalador era superior. Esta estrategia se basaba en la compatibilidad hacia atrás de Windows, asegurando que las versiones más recientes pudieran funcionar con aplicaciones más antiguas.

Sin embargo, esta recomendación a menudo se ignoraba. Muchos instaladores, sin importar la versión, simplemente sobrescribían cualquier archivo que se interponía en su camino. Esto era particularmente problemático en Windows 95, ya que los instaladores a menudo reemplazaban los componentes de Windows 95 con versiones más antiguas de Windows 3.1, causando inestabilidad y fallos en el sistema. Imaginemos el caos que esto generaba al romper la funcionalidad de otras aplicaciones.

Para mitigar este problema, Windows 95 implementó una solución ingeniosa: mantenía copias de seguridad ocultas de los archivos más comúnmente sobrescritos en C:\Windows\. Después de que un instalador finalizaba su ejecución, Windows 95 verificaba los cambios realizados y restauraba las versiones correctas de los archivos, esencialmente 'limpiando' el desastre causado por instaladores mal diseñados.

Una alternativa inicial, bloquear la sobrescritura, resultó contraproducente. Algunos instaladores simplemente fallaban, otros mostraban mensajes de error confusos para el usuario, y otros incluso intentaban soluciones extremas como reinicios del sistema para forzar la sobrescritura. Intentar redirigir la escritura a un archivo falso tampoco funcionó, ya que muchos instaladores incluían verificaciones de sumas de comprobación para asegurar la integridad de los archivos, detectando así el intento de instalación fallido.

La solución final, permitir la sobrescritura y luego restaurar las versiones correctas, demostró ser la más efectiva. En algunos casos, los componentes incluso tomaron medidas más drásticas, proporcionando sus propios instaladores y prohibiendo a otros programas instalar sus archivos directamente, forzando a los instaladores a utilizar su propio programa de instalación. Esto, aunque disruptivo para la interfaz de usuario, se justificaba por la falta de fiabilidad demostrada por los instaladores de terceros.