Descrição da funcionalidade 'Protecção de ficheiros do Windows'

Sumário

Este artigo descreve a funcionalidade Protecção de ficheiros do Windows (WFP, Windows File Protection).

Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido).

Mais Informação

A funcionalidade Protecção de ficheiros do Windows (Windows File Protection) impede que os programas substituam ficheiros essenciais do sistema Windows. Estes ficheiros não deverão ser substituídos por programas, uma vez que são utilizados pelo sistema operativo e por outros programas. Ao proteger estes ficheiros evita problemas com os programas e com o sistema operativo.

A WFP protege ficheiros de sistema essenciais instalados como componentes do Windows (por exemplo, ficheiros com uma extensão .dll, .exe, .ocx, .sys e alguns tipos de letra True Type). A WFP utiliza assinaturas de ficheiro e ficheiros de catálogo, gerados por assinatura de código, para verificar se os ficheiros de sistema protegidos têm as versões correctas da Microsoft. A substituição de ficheiros de sistema protegidos só é suportada se for efectuada pelos seguintes mecanismos:
  • Instalação de Service Packs do Windows utilizando o Update.exe
  • Correcções instaladas utilizando o Hotfix.exe ou o Update.exe
  • Actualizações do sistema operativo utilizando o Winnt32.exe
  • Windows Update
Se um programa utilizar um método diferente para substituir ficheiros protegidos, a WFP restaura os ficheiros originais. O Windows Installer utiliza a WFP ao instalar ficheiros de sistema essenciais e chama a WFP com um pedido de instalação ou substituição do ficheiro protegido, em vez de tentar a respectiva instalação ou substituição.

Como funciona a funcionalidade WFP

A funcionalidade WFP protege os ficheiros de sistema utilizando dois mecanismos. O primeiro mecanismo é executado em segundo plano. Esta protecção é accionada depois de a WFP ser notificada acerca de uma alteração de directório de um ficheiro de um directório protegido. Após a recepção desta notificação, a WFP determina o ficheiro que foi alterado. Se o ficheiro estiver protegido, a WFP procura a assinatura do ficheiro num ficheiro de catálogo para determinar se o novo ficheiro tem a versão correcta. Se o ficheiro não tiver a versão correcta, a WFP substitui o novo ficheiro pelo ficheiro da pasta da cache (se estiver na pasta da cache) ou da origem de instalação. A WFP procura o ficheiro correcto nas seguintes localizações, por esta ordem:
  1. A pasta da cache (por predefinição, %systemroot%\system32\dllcache).
  2. O caminho de instalação de rede, se o sistema tiver sido instalado utilizando uma instalação de rede.
  3. O CD-ROM do Windows, se o sistema tiver sido instalado a partir de CD-ROM.
Se a WFP localizar o ficheiro na pasta da cache ou se a origem de instalação for localizada automaticamente, a WFP substitui o ficheiro silenciosamente. Se a WFP não conseguir localizar automaticamente o ficheiro em qualquer uma destas localizações, o utilizador recebe uma das seguintes mensagens, em que nome_ficheiro é o nome do ficheiro que foi substituído e produto é o produto Windows que está a utilizar:
  • Protecção de ficheiros do Windows
    Os ficheiros necessários para funcionar correctamente foram substituídos por versões não reconhecidas. Para manter a estabilidade, o sistema restaurará as versões originais dos ficheiros. Insira o CD-ROM do
    produto agora.
  • Protecção de ficheiros do Windows
    Os ficheiros necessários para funcionar correctamente foram substituídos por versões não reconhecidas. Para manter a estabilidade, o sistema restaurará as versões originais dos ficheiros. A localização de rede de onde deve copiar os ficheiros, \\servidor\partilha, está indisponível. Contacte o administrador de sistema ou insira o CD-ROM do
    produto agora.
Nota: se não tiver sessão iniciada como administrador, a WFP não conseguirá apresentar estas caixas de diálogo. Nesta situação, a WFP apresenta a caixa de diálogo após o início de sessão de um administrador. A WFP pode aguardar o início de sessão de um administrador nos seguintes cenários:
  • A entrada do registo SFCShowProgress está em falta ou está definida para 1 e o servidor está definido para analisar sempre que o computador é iniciado. Nesta situação, a WFP aguarda o início de sessão da consola. Assim, o servidor RPC não é iniciado até a análise ser executada. O computador não tem protecção durante este tempo.

    Nota: ainda pode mapear unidades de rede, utilizar ficheiros de sistema e utilizar os serviços de terminal para iniciar sessão no servidor. A WFP não considera estas operações como o início de sessão de uma consola e espera indefinidamente.
  • A WFP tem de restaurar um ficheiro a partir de uma partilha de rede. Esta situação pode ocorrer se o ficheiro não estiver presente na pasta Dllcache ou se o ficheiro estiver danificado. Nesta situação, a WFP pode não ter as credenciais correctas para aceder à partilha a partir do suporte de instalação baseado na rede.
O segundo mecanismo de protecção fornecido pela funcionalidade WFP é a ferramenta Verificador de ficheiros de sistema (System File Checker, Sfc.exe). No final do programa de configuração no modo GUI, a ferramenta verifica todos os ficheiros protegidos, para garantir que não foram modificados por programas instalados através de uma instalação automática. A ferramenta Verificador de ficheiros de sistema (System File Checker) também verifica todos os ficheiros de catálogo que são utilizados para controlar as versões correctas dos ficheiros. Se algum dos ficheiros de catálogo estiver danificado ou em falta, a WFP muda o nome ao ficheiro de catálogo afectado e obtém uma versão em cache desse ficheiro a partir da pasta da cache. Se uma cópia em cache do ficheiro de catálogo não estiver disponível na pasta da cache, a funcionalidade WFP pede o suporte de dados apropriado para obter uma nova cópia do ficheiro de catálogo.

A ferramenta Verificador de ficheiros de sistema (System File Checker) permite que um administrador verifique todos os ficheiros protegidos para confirmar as respectivas versões. Esta ferramenta também verifica e preenche novamente a pasta da cache (por predefinição, %SystemRoot%\System32\Dllcache). Se a pasta da cache ficar danificada ou inutilizável, é possível utilizar os comandos sfc /scanonce ou sfc /scanboot, numa linha de comandos, para reparar o conteúdo da pasta.

O valor SfcScan na seguinte chave de registo tem três definições possíveis:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
As definições para o valor SfcScan são:
  • 0x0 = não verificar ficheiros protegidos após o reinício. (Valor predefinido).
  • 0x1 = verificar todos os ficheiros protegidos após cada reinício (definir caso sfc /scanboot seja executado).
  • 0x2 = verificar todos os ficheiros protegidos uma vez após um reinício (definir caso sfc /scanonce seja executado).
Por predefinição, todos os ficheiros de sistema são colocados em cache na pasta da cache, e o tamanho predefinido da cache é 400 MB. No entanto, devido a considerações de espaço em disco, poderá não ser conveniente manter versões em cache de todos os ficheiros de sistema na pasta da cache. Para alterar o tamanho da cache, altere a definição do valor SFCQuota na seguinte chave do registo:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
A WFP armazena versões de ficheiros verificados na pasta Dllcache, no disco rígido. O número de ficheiros em cache é determinado pela definição do valor SFCQuota (o tamanho predefinido é 0xFFFFFFFF, ou 400 MB). O administrador pode definir o valor SFCQuota conforme necessário. Repare que, se definir o valor SFCQuota como 0xFFFFFFFF, a funcionalidade WFP coloca em cache todos os ficheiros de sistema protegidos (aproximadamente 2700 ficheiros).

Existem, no entanto, dois casos em que a pasta da cache poderá não conter cópias de todos os ficheiros protegidos, independentemente do valor SFCQuota:
  1. Espaço em disco insuficiente.

    No Windows XP, a WFP deixa de preencher a pasta Dllcache quando o espaço disponível no disco rígido é inferior a 600 MB + o tamanho máximo do ficheiro de paginação.
    No Windows 2000, a WFP deixa de preencher a pasta Dllcache quando o espaço disponível no disco rígido é inferior a 600 MB.
  2. Instalação de rede.

    Quando o Windows 2000 ou o Windows XP é instalado através da rede, os ficheiros do directório i386\lang não são colocados na pasta Dllcache.
Além disso, todos os controladores existentes no ficheiro Driver.cab estão protegidos, mas não são colocados na pasta Dllcache. A WFP consegue restaurar estes ficheiros directamente a partir do ficheiro Driver.cab, sem pedir o suporte de origem ao utilizador. No entanto, a execução do comando sfc /scannow coloca os ficheiros do ficheiro Driver.cab na pasta Dllcache.

Se a WFP detectar uma alteração de ficheiro e o ficheiro afectado não estiver na pasta da cache, a WFP examina a versão do ficheiro alterado que o sistema operativo estiver a utilizar actualmente. Se o ficheiro que está a ser utilizado actualmente tiver a versão correcta, a WFP copia essa versão do ficheiro para a pasta da cache. Se o ficheiro que está a ser utilizado actualmente não tiver a versão correcta, ou se o ficheiro não tiver sido colocado na pasta da cache, a WFP tenta localizar a origem de instalação. Se a WFP não conseguir localizar a origem de instalação, pede ao administrador para introduzir o suporte de dados apropriado para substituir o ficheiro ou a versão do ficheiro em cache.

O valor SFCDllCacheDir (REG_EXPAND_SZ) na seguinte chave de registo especifica a localização da pasta Dllcache.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
Os dados do valor predefinidos para SFCDllCacheDir são %SystemRoot%\System32. O valor SFCDllCacheDir pode ser um caminho local. Por predefinição, o valor SFCDllCacheDir não está listado na chave de registo HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon actual. Para modificar a localização da cache, deverá adicionar este valor.

Quando o Windows arranca, a WFP sincroniza (copia) as definições de WFP da seguinte chave de registo
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection
para a seguinte chave do registo:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
Deste modo, se os valores SfcScan, SFCQuota ou SFCDllCacheDir existirem na subchave HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Windows File Protection os valores prevalecem em relação aos mesmos valores na subchave HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon .
Para obter mais informações sobre a funcionalidade WFP, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):

222473 Registry settings for Windows File Protection

Para obter mais informações sobre a ferramenta Verificador de ficheiros de sistema (System File Checker), clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):

310747 Descrição do verificador de ficheiros de sistema do Windows XP e do Windows Server 2003 (Sfc.exe)

Para obter mais informações sobre a ferramenta Verificador de ficheiros de sistema (System File Checker) no Windows 2000, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):

222471 Description of the Windows 2000 System File Checker (Sfc.exe)

Para obter mais informações sobre a funcionalidade WFP, visite o seguinte Web site da Microsoft: Para obter mais informações sobre o Windows Installer e a WFP, visite o seguinte Web site da Microsoft:
Propriedades

ID do Artigo: 222193 - Última Revisão: 18/01/2008 - Revisão: 1

Comentários