El Sistema de Protección de Archivos (WFP o “Windows Protection File” de sus siglas en inglés) es un sistema mediante el cual Windows ME, 2000 XP y posteriores llevan a cabo un proceso de monitorización de archivos protegidos de sistema evitando que éstos sean remplazados. Esta utilidad hace su tarea de forma automática y no tenemos que hacer nada especial para hacerla funcional, siendo además complicado deshabilitarla ya que hay que echar mano del registro para conseguir este propósito.

Descripción del Sistema de Protección de Archivos - WFP

El Sistema de Protección de Archivos es por tanto una característica esencial de Windows que impide la sustitución de archivos esenciales de sistema, provocados por la instalación de software de terceros, que pueden llegar a desestabilizarlo. Estos archivos de sistema son todos los que vienen incluidos en el CD de instalación,  es decir, las bibliotecas (dll) de sistema, los ejecutables (exe) provistos por Windows en la instalación, controles ActiveX (ocx), Fuentes y Tipos de letra básicos para el funcionamiento, etc.

Como hemos dicho, el Sistema de Protección de Windows siempre está habilitado y hace un seguimiento de los archivos esenciales del sistema operativo verificando la firma digital de los mismos. Si ésta varía o es inválida, WFP remplazará el archivo afectado por una copia intacta idéntica al momento en el que instalamos Windows. El Sistema de Protección de Archivos sólo permite que se lleven a cabo sustituciones de archivos de sistema mediante alguno de los siguientes métodos:

  • Instalación de Service Packs
  • Windows Update
  • Actualizaciones de Windows mediante el CD de instalación, o reparación del sistema operativo mediante el mismo método

Si un archivo de sistema es sustituido por cualquier otro procedimiento diferente al descrito éste será inmediatamente remplazado. Podemos comprobarlo eliminando por ejemplo el archivo notepad.exe que está ubicado en nuestro directorio Windows. Para ello abrimos Mi PC, navegamos hasta el directorio en donde tengamos instalado Windows, seleccionamos con el ratón el archivo “notepad.exe” y pulsamos la tecla suprimir. Si ahora vamos al menú Ver / actualizar,  nos daremos cuenta de que a pesar de haber eliminado adrede el notepad.exe, este vuelve a estar en su sitio. Pues bien, esto nos indica que el Sistema de Protección de Windows está funcionando adecuadamente; y es que este sistema de protección vigila de forma constante, en segundo plano, los archivos que se modifican. Para llevar a cabo su propósito, Windows guarda una copia de todos los archivos de sistema protegidos en la carpeta  /windows/system32/dllcache,  y si observa que varía la firma digital del archivo protegido o éste está asunte, simplemente copia a su ubicación original el archivo protegido.

El comando SFC, descripción y parámetros

De todas formas, puede dársenos el caso de que los archivos no sean automáticamente remplazados. Pues bien, para forzar el reemplazo y obligar al sistema a comprobar los archivos de sistema protegidos disponemos de la utilidad SFC, que fuerza esta comprobación. Para ejecutar SFC, simplemente deberemos acudir a una consola de comandos tecleando desde inicio / ejecutar, CMD.EXE. En nuestra línea de comandos o consola, teclearemos “SFC /?” para ver los parámetros disponibles y que son los siguientes:

/SCANNOW
/SCANONCE
/SCANBOOT
/CANCEL
/REVERT
/PURGECACHE
/CACHESIZE=x


SFC /SCANNOW
arranca de forma inmediata la comprobación de archivos protegidos, sustituyendo cualquier archivo dañado o ausente que se encuentre durante el proceso de comprobación. Al teclearlo nos aparecerá una pantalla gráfica ofreciéndonos información sobre el proceso.

La carpeta Dllcache es extremadamente importante y no la veremos en nuestro sistema a no ser que  destildemos la casilla Ocultar Archivos Protegidos de Sistema , ubicada en MI PC, herramientas, pestaña Ver.  Si esta carpeta se corrompe por algún motivo,  el Sistema de Protección de Archivos de Windows no puede llevar a cabo su cometido de forma satisfactoria, por lo que  al ejecutar este comando  SFC nos requerirá el CD de instalación si no encuentra los archivos que precisa en esta carpeta. SFC, lee la fuente predeterminada de instalación de la clave  SourcePath ubicada en el registro, en la rama

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup

Normalmente esta fuente  será, como hemos dicho, el CD de instalación, y concretamente la carpeta I386 de este CD. Pero variando el valor de esa clave podemos elegir cualquier otro destino como fuente de instalación, siempre que el destino elegido sea fiel reflejo del contenido de la carpeta i386, del CD instalación.

Hay que tener en cuenta que nuestros archivos pueden ver alterada su firma digital por alguno de los procedimientos previstos para su reemplazo. Es decir, que si después de instalar Windows, lo actualizamos mediante un Service Pack, esta actualización va a alterar buena parte de nuestros archivos protegidos, cambiándolos por una versión posterior, por lo que SFC se quejará y no nos aceptará nuestro CD de instalación a no ser que hayamos integrado en el el Service Pack que hemos instalado con posterioridad.

Si este es nuestro caso, o si no tenemos integrado el SP2 en la fuente de instalación, deberemos alterar esta clave y elegir otra fuente de instalación. Siempre que instalemos un Service Pack desde Windows Update se generará una nueva carpeta llamada servicepack/i386 ubicada en nuestro directorio de Windows que debería estar presente siempre que hayamos llevado a cabo el proceso de instalación del Service Pack 2 desde Windows Update, y lógicamente, siempre que no la hayamos eliminado posteriormente. De hecho, aunque ocupe espacio, es aconsejable dejar la carpeta servicepack/i386,  siempre presente  en nuestro sistema, puesto que como vemos, nos puede ser muy útil. El parámetro SCANONCE llevará a cabo esta búsqueda de archivos protegidos en el próximo reinicio de Windows. Para llevar a cabo el proceso en cada reinicio deberemos teclear el comando SCANBOOT,  finalmente tenemos el parámetro SCANPURGE, que elimina todos los archivos contenidos en la carpeta dllcache y los remplaza por copias nuevas.

La carpeta dllcache puede llegar a tener un espacio considerable y aunque es aconsejable dejar la configuración por defecto, podemos limitar su  tamaño si agregamos al comando SFC el parámetro /CACHESIZE=x, donde X es el tamaño máximo  en megabytes que pueden ocupar los archivos cacheados . Si deseamos suspender el trabajo de SFC por algún motivo, podemos llevar a cabo este cometido tecleando SFC /CANCEL, que eliminará cualquier proceso de búsqueda de archivos protegidos mediante SFC que se esté llevando a cabo en ese momento en nuestro sistema.

Al teclear el comando SFC es posible que nos encontremos que éste no se ejecuta y nos salte este error, o similar:

"La protección de archivos de Windows no pudo purgar la caché de los archivos.
El código de error específico es 0x000006ba [El servidor RPC no está
disponible."

El mensaje de error El servidor RPC no está  disponible

 

Este mensaje se nos ofrecerá siempre que el sistema de protección de archivos esté deshabilitado, y esto puede estar provocado por motivos muy variopintos, vamos a enumerarlos:

  1. El Sistema de Protección de Archivos de Windows nunca estará disponible en modo seguro, si lo tecleamos arrancando nuestro sistema en ese modo se nos ofrecerá ese mensaje, por lo que siempre deberemos ejecutar el comando SFC en modo normal
  2. En nuestro disco duro deberemos tener más de 600 megas de espacio disponible junto con un espacio generoso para poder acoger el archivo de paginación de memoria según lo tengamos configurado en nuestro sistema, por lo que si no tenemos suficiente espacio libre en la partición en la que tengamos instalado Windows, el Sistema de Protección de Archivos de Windows, suspenderá su trabajo.
  3.  Hay también una incidencia relacionada en los artículos de la KB en la que se describe que es posible que el Sistema de Protección de Archivos de Windows, suspenda sus tareas con cierta configuración de certificados.
  4. Hay ciertos virus sucedáneos del viejo Blaster que atacan la conocida vulnerabilidad en RPC/DCOM y que también pueden provocar que el Sistema de Protección de Archivos de Windows no lleve a cabo su tarea de forma satisfactoria deshabilitándolo, lo primero a descartar es, por tanto, la ausencia de malware en nuestro sistema, ejecutando algún antivirus online al efecto.
  5. El sistema de Protección de archivos de Windows también puede ser suspendido mediante la manipulación del registro. Deberemos verificar que por alguna extraña casualidad  no nos hallamos en este caso. Los parámetros que modifican el comportamiento del  comando SFC y del Sistema de Protección de Archivos de Windows los podemos conocer en el siguiente apartado:

 

PARÁMETROS DEL REGISTRO DE WFP.

Es necesario iniciar cuenta como administrador para poder ver los mensajes de error y lógicamente para variar estas claves que comentamos seguidamente,. El Sistema de Protección de Archivos de Windows lee sus parámetros de inicialización desde el registro, en la rama

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

 Para visualizarla no tendremos más que abrir el registro y navegar hasta la rama especificada. En el panel de la derecha veremos varias claves, pero las que nos interesan y las que modifican el comportamiento de WPF o Sistema de Protección de Archivos de Windows, son las siguientes:

 

  •  SFCScan, Clave de Tipo DWORD que puede contener como valores,

 0  =  No escanea archivos protegidos del sistema durante cada inicio, (Valor por defecto)

 1 = Escanea Archivos Protegidos en cada inicio del Sistema,

 2 = Escanea archivos protegidos sólo una vez, en el próximo reinicio.

  •  SfcQuota, Clave de tipo DWORD, que tiene el mismo efecto que el comando que antes hemos comentado sfc /cachesize=x, sus valores están en notación Hexadecimal, y pueden ir desde 0 (cero megabyes) hasta ffffffff, Este último valor indica que la caché no está limitada y todos los archivos protegidos del sistema son guardados y seguidos.

  • SFCShowProgress, de tipo DWORD, puede tomar como valor 0 ó 1, donde, con un 1, la utilidad SFC mostrará una barra de progreso mostrando en que estado está su trabajo, con 0 esa barra no nos sale. El valor por defecto es 1.

 
  •  SFCDllCacheDir, es una Clave de Cadena Expandible, que contiene la ruta al directorio en donde los archivos protegidos son cacheados, por defecto su valor es: Path =%Systemroot%\system32\dllcache

 

  

Hasta aquí los parámetros documentados por Microsoft con respecto al Sistema de Protección de Archivos de Windows. El caso es que si abrimos esa rama, observaremos dos claves más que no están documentadas, y cuya finalidad es habilitar o deshabilitar la función de WFP, son los siguientes: 

  

  • · SFCDisable, Clave de Tipo DWORD, que puede contener los siguientes valores:
 

 0, es el valor por defecto e indica que el Sistema de Protección de Archivos de Windows, está habilitado. 

 1, Deshabilitado, Windows nos preguntará en el próximo inicio si lo deseamos habilitar. 

 2, Deshabilitado, pero sólo hasta el próximo reinicio. 

 4, Habilitado, en el próximo inicio Windows nos preguntará si deseamos habilitarlo. 

 Ffffff9d, Cuidado con este parámetro, puesto que deshabilitamos permanentemente elsistema de protección de archivos de Windows.
 
  •  SFCSettings, Es una clave gemela a la que hemos comentado con anterioridad, SFCDisable, por lo que si la encontramos con valor Ffffff9d, querrá decir que tenemos WFP deshabilitado.
 

En nuestra sección de descargas tenéis un archivo reg, que  recupera la configuración minima para WinXP en el registro de WFP y SFC.
Podemos personalizar todos las claves que hemos comentado en el párrafo anterior desde GPEDIT,  presente en Windows XP prof de hecho hay un apartado especial llamado Protección de archivos de Windows, que encontraremos bajo la ruta, Configuración del equipo > Plantillas administrativas > Sistema, en el panel de la derecha tenemos varias políticas que nos ayudan en la tarea de la personalización y que vienen bastante bien descritas en el propio Gpedit.
 

Cualquier modificación que hagamos via gpedit en este apartado se guardará en el registro, en la rama: 

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection 

Windows leerá esta rama durante el arranque y, de existir, copiará los valores existentes a la rama que en el apartado anterior hemos mencionado: 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon {jos_sb_discuss:2}