DEV/WindowsNT

WFP, windows file protect 이해

MasterJ 2014. 2. 25. 10:19

http://support.microsoft.com/kb/222193/ko


WFP(Windows 파일 보호) 기능은 프로그램에 의해 중요한 Windows 시스템 파일이 변경되지 않도록 합니다. 이러한 파일은 운영 체제 및 다른 프로그램에 사용되므로 특정 프로그램에서 덮어쓰면 안 됩니다. Windows 시스템 파일을 보호하면 프로그램과 운영 체제에서 발생하는 문제를 방지할 수 있습니다.

WFP는 Windows의 일부로 설치된 중요한 시스템 파일(예: 확장명이 .dll, .exe, .ocx 및 .sys인 파일, 트루타입 글꼴이 있는 파일 등)을 보호합니다. 또한 코드 서명에 의해 생성되는 파일 서명과 카탈로그 파일을 사용하여 보호된 시스템 파일이 올바른 Microsoft 버전인지 확인합니다. 보호된 시스템 파일은 다음 메커니즘을 통해서만 교체됩니다.

  • Update.exe를 사용하여 Windows 서비스 팩 설치
  • Hotfix.exe 또는 Update.exe를 통해 설치된 핫픽스
  • Winnt32.exe를 사용하여 운영 체제 업그레이드
  • Windows Update

프로그램에서 보호된 파일을 교체할 때 다른 방법을 사용하면 WFP는 원래 파일을 복원합니다. Windows Installer는 보호된 파일 자체를 설치하거나 교체하는 대신 중요한 시스템 파일을 설치할 때 WFP를 따르고 보호된 파일을 설치하거나 교체하라는 요청과 함께 WFP를 호출합니다.

WFP 기능의 작동 방법

WFP 기능은 두 가지 메커니즘을 사용하여 시스템 파일을 보호합니다. 첫 번째 메커니즘은 백그라운드에서 실행됩니다. 이 보호 기능은 WFP에 보호된 디렉터리의 파일에 대한 디렉터리 변경 알림이 나타난 후 실행됩니다. WFP에 이 알림이 나타나면 WFP는 어떤 파일이 변경되었는지 확인합니다. 파일이 보호되면 WFP는 카탈로그 파일에서 파일 서명을 찾아 새 파일이 올바른 버전인지 확인합니다. 이 파일이 올바른 버전이 아니면 WFP는 새 파일을 캐시 폴더(파일이 캐시 폴더에 있는 경우) 또는 설치 원본에 있는 파일로 교체합니다. WFP는 다음과 같은 순서로 해당 위치에서 올바른 파일을 검색합니다.

  1. 캐시 폴더(기본적으로 %systemroot%\system32\dllcache)
  2. 네트워크 설치 경로(네트워크 설치를 사용하여 시스템을 설치한 경우)
  3. Windows CD-ROM(CD-ROM을 사용하여 시스템을 설치한 경우)

WFP가 캐시 폴더에서 파일을 찾거나 설치 원본이 자동으로 발견되면 WFP는 이 파일을 자동으로 교체합니다. WFP가 이 위치에서 파일을 자동으로 찾지 못하면 다음과 유사한 메시지 중 하나가 나타납니다. 여기에서 file_name은 교체된 파일 이름이고 product는 사용 중인 Windows 제품입니다.

  • Windows 파일 보호
    Windows 실행에 필요한 파일이 알 수 없는 버전으로 교체되었습니다. 시스템 안정성을 유지하려면 원본 버전으로 복원해야 합니다. product CD-ROM을 삽입하십시오.
  • Windows 파일 보호
    Windows 실행에 필요한 파일이 알 수 없는 버전으로 교체되었습니다. 시스템 안정성을 유지하려면 원본 버전으로 복원해야 합니다. 파일을 복사할 네트워크 위치 \\server\share을(를) 사용할 수 없습니다. 시스템 관리자에게 문의하거나product CD-ROM을 삽입하십시오.

참고 관리자로 로그온하지 않으면 WFP에서 이러한 대화 상자를 표시할 수 없습니다. 이 경우 관리자가 로그온한 후에 WFP에서 대화 상자를 표시합니다. WFP는 다음과 같은 시나리오에서 관리자가 로그온하도록 대기합니다.

  • SFCShowProgress 레지스트리 항목이 없거나 1로 설정되어 있고, 컴퓨터가 시작될 때마다 검색하도록 서버가 설정되어 있는 경우. 이 경우 WFP는 콘솔 로그온을 기다립니다. 따라서 검색이 완료될 때까지 RPC 서버가 시작되지 않으며, 이 작업이 실행되는 동안에는 컴퓨터가 보호되지 않습니다.

    참고 이 경우에도 네트워크 드라이브 매핑, 시스템 파일 사용, 터미널 서비스를 사용하여 서버 로그온 등의 작업을 실행할 수 있습니다. WFP에서는 이러한 작업을 콘솔 로그온으로 간주하지 않으므로 무기한 대기합니다.
  • WFP를 통해 네트워크 공유에서 파일을 복원해야 하는 경우. 파일이 Dllcache 폴더에 없거나 손상된 경우 이러한 상황이 발생할 수 있습니다. 이 경우 네트워크 기반 설치 미디어에서 공유 위치에 액세스할 수 있는 올바른 자격 증명이 WFP에 없을 수 있습니다.

WFP 기능에서 제공하는 두 번째 보호 메커니즘은 시스템 파일 검사기(Sfc.exe) 도구입니다. GUI 모드 설치가 끝나면 시스템 파일 검사기는 모든 보호 파일을 검색하여 무인 설치로 설치된 프로그램에 의해 파일이 수정되지 않았는지 확인합니다. 또한 시스템 파일 검사기 도구는 올바른 파일 버전을 추적하는 데 사용되는 모든 카탈로그 파일을 검사합니다. 카탈로그 파일이 없거나 손상된 경우 WFP는 영향을 받은 카탈로그 파일의 이름을 바꾸고 캐시 폴더에서 해당 파일의 캐시된 버전을 검색합니다. 이때 캐시 폴더에서 카탈로그 파일의 캐시된 복사본을 사용할 수 없으면 WFP 기능은 카탈로그 파일의 새 복사본을 검색할 적절한 미디어를 요청합니다.

관리자는 시스템 파일 검사기 도구를 사용하여 보호된 파일을 모두 검색하고 버전을 검사할 수 있습니다. 또한 시스템 파일 검사기 도구는 캐시 폴더(기본적으로 %SystemRoot%\System32\Dllcache)를 확인하고 다시 게시합니다. 캐시 폴더가 손상되었거나 사용할 수 없는 상태이면 명령 프롬프트에서 sfc /scanonce 명령 또는 sfc /scanboot 명령을 사용하여 폴더의 내용을 복구할 수 있습니다.

다음 레지스트리 키의

SfcScan

값에는 세 가지 설정이 있습니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
SfcScan

값 설정은 다음과 같습니다.

  • 0x0
    = 다시 시작한 후 보호된 파일을 검색하지 않습니다(기본값).
  • 0x1
    = 다시 시작할 때마다 보호된 모든 파일을 검색합니다(sfc /scanboot가 실행되는 경우 설정).
  • 0x2
    = 다시 시작한 후 보호된 모든 파일을 한 번 검색합니다(sfc /scanonce가 실행되는 경우 설정).

기본적으로 모든 시스템 파일은 캐시 폴더에 캐시되며 기본 캐시 크기는 400MB입니다. 디스크 공간을 고려할 때 모든 시스템 파일의 캐시 버전을 캐시 폴더에 유지하는 것은 바람직하지 않습니다. 캐시 크기를 변경하려면 다음 레지스트리 키의

SFCQuota

값 설정을 변경하십시오.

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

WFP는 확인된 파일 버전을 하드 디스크의 Dllcache 폴더에 저장합니다. 캐시된 파일 수는

SFCQuota

값 설정에 따라 결정되는데, 기본 크기는 0xFFFFFFFF 또는 400MB입니다. 관리자는 필요에 따라

SFCQuota

값을 크거나 작게 설정할 수 있습니다.

SFCQuota

값을

0xFFFFFFFF

로 설정하면 WFP 기능은 약 2,700개의 모든 보호된 시스템 파일을 캐시합니다.

다음과 같은 두 가지 경우에는 SFCQuota 값에 관계없이 캐시 폴더에 모든 보호된 파일의 복사본이 포함되지 않을 수 있습니다.

  1. 디스크 공간 부족

    Windows XP를 실행하는 경우 WFP는 하드 디스크의 사용 가능한 공간이 600MB + 페이지 파일의 최대 크기보다 작을 때 Dllcache 폴더 채우기를 중지합니다.
    Windows 2000을 실행하는 경우 WFP는 하드 디스크의 사용 가능한 공간이 600MB보다 작을 때 Dllcache 폴더 채우기를 중지합니다.
  2. 네트워크 설치

    Windows 2000 또는 Windows XP가 네트워크를 통해 설치되면 i386\lang 디렉터리의 파일이 Dllcache 폴더에 채워지지 않습니다.

또한 Driver.cab 파일의 모든 드라이버가 보호되지만 Dllcache 폴더에 채워지지는 않습니다. WFP는 사용자에게 원본 미디어를 입력하라는 메시지를 나타내지 않고 Driver.cab 파일에서 직접 이 파일을 복원할 수 있습니다. 그러나 sfc /scannow 명령을 실행하면 이러한 파일을 Driver.cab 파일에서 Dllcache 폴더로 채울 수 있습니다.

WFP는 파일 변경을 감지하고 영향을 받은 파일이 캐시 폴더에 없으면 운영 체제에서 현재 사용 중인 변경된 파일의 버전을 검사합니다. 이때 현재 사용 중인 파일이 올바른 버전이면 해당 파일의 버전을 캐시 폴더에 복사하고, 현재 사용 중인 파일이 올바른 버전이 아니거나 파일이 캐시 폴더에 캐시되지 않으면 설치 원본을 찾습니다. WFP는 설치 원본을 찾을 수 없는 경우 관리자에게 적절한 미디어를 삽입하여 파일 또는 캐시된 파일 버전을 교체하라는 메시지를 표시합니다.

다음 레지스트리 키의

SFCDllCacheDir

값(

REG_EXPAND_SZ

)은 Dllcache 폴더의 위치를 지정합니다.

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

SFCDllCacheDir 값의 기본값 데이터는

%SystemRoot%\System32

입니다.

SFCDllCacheDir

값은 로컬 경로일 수 있습니다. 기본적으로

SFCDllCacheDir

값은

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

레지스트리 키에 나열되지 않습니다. 캐시 위치를 변경하려면 이 값을 추가해야 합니다.

Windows가 시작되면 WFP는 다음 레지스트리 키의 WFP 설정을

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

다음 레지스트리로 동기화(복사)합니다.

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

따라서

SfcScan

,

SFCQuota

또는

SFCDllCacheDir

값이

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

하위 키에 있으면 이러한 값이

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

하위 키에 있는 같은 값보다 우선권을 갖습니다.

WFP 기능에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
222473 Windows 파일 보호를 위한 레지스트리 설정
Windows XP 및 Windows Server 2003의 시스템 파일 검사기 도구에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
310747 Windows XP 및 Windows Server 2003 시스템 파일 검사기(Sfc.exe)에 대한 설명
Windows 2000의 시스템 파일 검사기 도구에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
222471 Windows 2000 시스템 파일 검사기(Sfc.exe)에 대한 설명

참조

WFP 기능에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.Windows Installer 및 WFP에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 참조하십시오.


'DEV > WindowsNT' 카테고리의 다른 글

Hide Registry key  (0) 2014.04.21