Discusión en profundidad de la protección de archivos de Windows XP

  
        Cuando instala una aplicación e inesperadamente hace que Windows se bloquee, es muy probable que la aplicación haya reescrito los archivos clave del sistema de Windows, causando que el sistema se bloquee. Después de modificar el archivo, los resultados son a menudo impredecibles. El sistema puede estar funcionando correctamente, con algunos errores o con un bloqueo completo. Afortunadamente, Windows 2000, XP y Server 2003 utilizan un mecanismo llamado Protección de archivos de Windows (WFP) que evita que los archivos críticos del sistema se sobrescriban. En este artículo, explicaré qué es el PMA y cómo funciona. También quiero decirle cómo modificar o ignorar el comportamiento de WFP.
(Nota: aunque no hay ninguna diferencia en el funcionamiento de WFP en Windows 2000, XP y Server 2003, la información de este artículo, incluidas las entradas relacionadas con el registro y la sintaxis SFC, es para XP). Cómo funciona la protección de archivos de Windows
WFP está diseñado para proteger el contenido de las carpetas de Windows. WFP protege tipos de archivos específicos, como SYS, EXE, DLL, OCX, FON y TTF, en lugar de bloquear cualquier modificación en toda la carpeta. La clave de registro determina el tipo de archivo protegido por WFP. Cuando una aplicación intenta reemplazar un archivo protegido, WFP verifica la firma digital del archivo de reemplazo para determinar si el archivo es de Microsoft y es la versión correcta. Si se cumplen estas dos condiciones, entonces se permite el reemplazo. En circunstancias normales, los tipos de archivos que pueden reemplazar archivos del sistema incluyen paquetes de servicio de Windows, parches y actualizaciones del sistema operativo. Los archivos del sistema también pueden ser reemplazados por Windows Updater o Windows Device Manager /Class Installer. Si estas dos condiciones no se cumplen al mismo tiempo, el archivo protegido será reemplazado por el nuevo archivo, pero pronto será reemplazado por el archivo correcto. Cuando esto suceda, Windows copiará la versión correcta del archivo desde el CD de instalación de Windows o desde la carpeta DLLCache en su computadora. La protección de archivos de Windows no solo protege los archivos al negarse a modificarlos, sino que también puede negarse a eliminarlos. Eche un vistazo al enfoque de WFP, abra la carpeta \\ WINDOWS \\ SYSTEM32 y cambie el nombre del archivo CALC.EXE a CALC.OLD. Cuando haga esto, un mensaje le preguntará si cambiar la extensión de este archivo puede hacer que este archivo no esté disponible. Haga clic en el botón Sí para confirmar esta advertencia. Ahora, espere unos minutos y presione F5 para actualizar la vista del sistema de archivos. Puede llevar algún tiempo completar el reemplazo. Cuando finalmente se reemplace el archivo, Windows realizará un registro correspondiente en el registro de eventos. Una cosa a tener en cuenta acerca de WFP es que está muy estrechamente integrado con el instalador de Windows. Siempre que el instalador de Windows necesite instalar un archivo protegido, lo entregará a WFP en lugar de intentar instalarlo. Luego, WFP determina si la instalación está permitida. Comprobación de archivos del sistema
Aunque el reemplazo automático de archivos ahorra tiempo, hay situaciones en las que se requiere intervención manual. Por ejemplo, es posible que no desee esperar a que WFP determine si se ha reemplazado un archivo protegido. Afortunadamente, puede controlar manualmente WFP con una herramienta llamada Verificación de archivos del sistema (SFC). SFC es una herramienta de línea de comandos que debe ejecutarse desde una ventana del símbolo del sistema. Su sintaxis es la siguiente: SFC [/SCANNOW] [/SCANONCE] [/SCANBOOT] [/REVERT] [/PURGECACHE] [/CACHESIZE = x] /SCANNOW La opción SCANNOW le indica al SFC que analice todos los archivos protegidos del sistema inmediatamente. Si se encuentra una versión de archivo incorrecta durante la exploración, esta versión incorrecta se reemplazará con la versión correcta de Microsoft. Por supuesto, esto significa que es posible que tenga que tener un CD de instalación de Windows, el último paquete de servicio o un parche de actualización. El parámetro /SCANONCE le dice a WFP que analice los archivos del sistema protegidos la próxima vez que se inicie el sistema. Cualquier archivo incorrecto será reemplazado por la versión correcta durante la exploración. Como el nombre de este parámetro significa, esta exploración solo se realiza una vez. Después de que el inicio del sistema vuelva a la normalidad, el SFC ya no se ejecutará. El parámetro /SCANBOOT es similar a la opción /SCANONCE. La diferencia es que SCANONCE escanea los archivos protegidos cuando Windows se inicia la próxima vez, mientras que el parámetro SCANBOOT escanea los archivos del sistema cada vez que Windows se inicia. Estos dos parámetros reemplazarán el archivo de sistema incorrecto si es necesario, lo que puede requerir que proporcione una copia de la versión correcta del archivo. La opción /REVERTIR se usa para desactivar el SFC. Por ejemplo, supongamos que utiliza la opción ARRANQUE PARA escanear los archivos protegidos cada vez que se inicia el sistema. Como puede imaginar, esto aumenta el tiempo total que se inicia la computadora. Por último, es posible que esté cansado del largo tiempo de inicio y desee desactivar SFC. Simplemente use SFC /REVERT para apagar el SFC en el inicio. Tenga cuidado con la opción /PURGECACHE. Antes de eso, expliqué que Windows usa una carpeta de caché para guardar copias de seguridad de las versiones correctas de varios archivos del sistema. Si ejecuta el comando SFC /PURGECACHE, esta memoria caché de archivo se vaciará y esos archivos de copia de seguridad se eliminarán. Este comando también hará que Windows comience a escanear varios archivos protegidos y reconstruya la memoria caché del archivo mientras escanea. Por supuesto, esto puede significar que debe proporcionar a Windows una copia del CD de instalación de Windows o la actualización del archivo del sistema. La última opción del comando SFC es /CACHESIZE = x. Hay una gran cantidad de información contradictoria sobre el tamaño predeterminado de la memoria caché del archivo. En el momento de escribir este artículo, encontré que el tamaño predeterminado de la memoria caché del archivo especificado en los tres artículos diferentes de la Base de conocimientos de Microsoft es diferente. En un artículo, el tamaño de caché de archivo recomendado es de 50 MB, mientras que el otro tamaño recomendado es de 300 MB. Además, el tercer artículo señala que este tamaño debe ser infinito. De hecho, el tamaño del valor predeterminado no es importante, ya que puede usar la opción CACHESIZE para cambiar el tamaño de este caché de archivo de acuerdo con sus necesidades. Al usar la opción CACHESIZE, debe escribir el comando SFC /CACHESIZE = x, que es el número de megabytes que desea asignar a la caché de archivos. Después de especificar el nuevo tamaño de caché de archivo, debe reiniciar el sistema y ejecutar el comando SFC /PURGECACHE. Control de WFP y SFC a través del registro
Antes de eso, expliqué que el registro controla el comportamiento general de WFP. Puede modificar varias claves de registro diferentes para controlar el comportamiento de WFP. Puede operar algunas de estas teclas directamente cada vez que ejecute SFC, mientras que otras tienen funciones de nivel inferior. Por ejemplo, especifique la ubicación de la caché de archivos o el archivo de instalación. Modificar el registro puede ser peligroso. Si comete un error, puede causar que Windows se bloquee o dañe su aplicación, por lo que recomiendo hacer una copia de seguridad completa del registro antes de intentar cualquiera de las técnicas descritas en esta sección. Para acceder a la clave de registro SFC, escriba el comando REFEDIT en el comando Ejecutar. Esto abrirá el Editor del Registro y ahora explorará el árbol de registro para encontrar la siguiente clave: HKEY_LOCAL_MacHINE \\ SOFTWARE \\ Microsoft \\ Windows NT \\ CurrentVersion \\ WinLogon Normalmente, la clave WinLogon en el registro generalmente se usa para controlar varias opciones de inicio. Si bien muchas opciones de SFC controlan si SFC se ejecuta en el momento del arranque, Microsoft ha colocado claves de registro relacionadas con SFC en esta sección. SFCDisabled
Esta clave de registro controla si el SFC está activo o no es válido. De hecho, puede obtener cuatro opciones diferentes simplemente cambiando el valor de DWORD. El valor predeterminado de DWord es 0. Esta configuración activa el SFC. Por lo general, no es necesario cambiar este valor. Sin embargo, puede modificar este valor entre 0 y 4 para activar el SFC pero no dejar que aparezca. Si cuelga el depurador del kernel, es mejor que apague el SFC. Si está utilizando un depurador de núcleo, puede cambiar el valor DWord de la clave de registro a 1, lo que cerrará el SFC y le pedirá que active el SFC nuevamente cada vez que inicie. También puede desactivar SFC estableciendo el valor DWord en 2. Esta opción simplemente apaga el SFC la próxima vez que se inicie. No hay ninguna opción para activar el SFC nuevamente, ya que el SFC se activará automáticamente cuando se inicie. SFCScan
Antes de esto, expliqué las opciones SCANONCE, SCANBOOT y REVERT para SFC. Mientras use estas opciones, la SFC está modificando la clave de registro de SFCScan. Puede modificar esta clave cambiando su asignación DWord. El valor predeterminado es 0. Este valor significa que no necesita escanear archivos protegidos al inicio. Esta configuración es equivalente a ejecutar el comando SFC /REVERT. Cambiar el valor DWord a 1 significa escanear el archivo protegido cada vez que se inicia. Establecer el valor de SFCScan en 1 equivale a ejecutar el comando SFC /SCANBOOT. Finalmente, establecer el valor DWord en 2 le indica al SFC que analice el archivo protegido la próxima vez que se inicie, pero no todos los futuros inicios. Esto es equivalente a ejecutar el comando SFC /SCANONCE. SFCQuota
La clave de registro SFCQuota se utiliza para controlar el tamaño de la memoria caché del archivo SFC. Como recordarán, cuando hablé sobre el comando SFC /CACHESIZE = x, mencioné el tamaño predeterminado de la caché de archivos y hay muchas inconsistencias. Sin embargo, en mi sistema, el valor DWord de la clave de registro SFCQuota por defecto es 0xffffffff. Según Microsoft Knowledge Base, este valor corresponde a un tamaño de caché de archivo de 300 MB. El artículo en la misma base de conocimientos indica que al modificar este valor a FFFFFFFF, puede almacenar en un buffer todos los archivos del sistema protegidos. SFCDllCacheDir
Antes de eso, expliqué que Windows usa la carpeta DLLCACHE como un lugar para hacer copias de seguridad de los archivos del sistema de almacenamiento. Normalmente, esta carpeta se encuentra en el directorio \\ Windows \\ SYSTEM32. Sin embargo, al modificar la clave de registro de SFCDllCacheDir, puede modificar la ubicación de la caché de archivos. La carpeta de caché de archivos generalmente se encuentra en el directorio DLLCACHE, pero al modificar esta clave de registro, puede modificar la ubicación de esta carpeta. Lo único que debe tener en cuenta es que debe especificar una dirección que ya exista en su disco duro local. En Windows 2000, puede especificar un recurso compartido de red como la ruta a DLLCACHE, pero esta opción no está disponible en Windows XP. SFCShowProgress
Otra clave de registro relacionada con SFC es la clave SFCShowProgress. Esta clave de registro le permite establecer su valor DWord en 0 o 1. El valor predeterminado es 0, lo que deshabilitará la visualización de las condiciones del proceso SFC. Establecer un valor de 1 permitirá que el SFC muestre el progreso. Dirección del archivo de origen
Antes de eso, expliqué cómo funcionan WFP y SFC. Señalé que bajo ciertas condiciones es posible que tenga que proporcionar una copia del CD de instalación de Windows o un archivo de origen válido. Sin embargo, al modificar el registro, es completamente posible especificar un directorio de archivos de origen en Windows sin pedirle a Windows que le solicite estos archivos. Esta clave de registro está en otra parte del registro. Debe encontrar la siguiente clave: HKEY_LOCAL_MacHINE \\ Software \\ Microsoft \\ Windows \\ CurrentVersion \\ Setup Una vez que haya encontrado esta ubicación, puede especificar la ubicación de los archivos del sistema de Windows mediante el uso de un símbolo de unidad o una ruta o un UNC. La premisa de usar este comando es que debe colocar el archivo en un directorio llamado I386. Por ejemplo, si su archivo de sistema de Windows está en un directorio llamado C: \\ I386, entonces solo necesita especificar la ruta C: \\ en el registro, porque Windows asume que el directorio I386 existe. De manera similar, si planea usar un recurso compartido UNC, la carpeta I386 debe existir en el directorio compartido. Por ejemplo, si el directorio que planea compartir se llama FILES, debe colocar la carpeta I386
Copyright © Conocimiento de Windows All Rights Reserved