티스토리 뷰

Application/Win32

Windows 파일 보호 기능에 대한 설명

알 수 없는 사용자 2008. 3. 13. 15:42

출처 : http://dualpage.muz.ro/

 

기술 자료 ID : 222193

마지막으로 검토한 날짜 : 2003년 10월 13일 월요일

수정 : 1.0

이 문서는 이전에 다음 ID로 출판되었음: KR222193

이 문서에서는 Windows 파일 보호(WFP) 기능에 대해 설명합니다.

추가 정보 Windows 파일 보호(WFP)는 프로그램이 중요한 Windows 시스템 파일을 바꾸지 못하게 합니다. 이러한 파일은 운영체제 및 다른 프로그램에 의해 사용되므로 프로그램에서 파일을 덮어쓰지 말아야 합니다. 이러한 파일을 보호하면 프로그램과 운영 체제에 발생하는 문제를 방지할 수 있습니다.

WFP는 Windows의 일부로 설치된 중요한 시스템 파일(예: .dll, .exe, .ocx 및 .sys 확장명을 가진 파일 및 트루타입 글꼴이 있는 파일)을 보호합니다. WFP는 코드 서명에 의해 생성되는 파일 서명과 카탈로그 파일을 사용하여 보호된 시스템 파일이 올바른 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%system32dllcache)
2. 네트워크 설치를 사용하여 시스템을 설치한 경우 네트워크 설치 경로
3. 시스템을 CD-ROM에서 설치한 경우

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

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

참고: 관리자가 로그온하지 않으면 WFP는 이 대화 상자 중 어느 것도 표시할 수 없습니다. 이 경우 WFP는 관리자가 로그온한 후에야 해당 대화 상자를 표시합니다. WFP는 시스템 이벤트 로그에 파일 교체 시도를 알리는 이벤트도 기록합니다. 관리자가 WFP 파일 교체를 취소하면 취소를 알리는 이벤트가 기록됩니다. WFP는 적절히 제한된 사용자 계정과 적합한 보안 정책을 갖기 위한 교체가 아닙니다.

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

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

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon

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

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

HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon

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가 네트워크로 설치되면 i386lang 디렉터리의 파일은 Dllcache 폴더에 채워지지 않습니다. 또한 Driver.cab 파일의 모든 드라이버는 보호되지만 Dllcache 폴더에 채워지지 않습니다.

WFP는 사용자에게 원본 미디어를 입력하라는 메시지를 나타내지 않고 직접 Driver.cab 파일에서 이 파일을 복원할 수 있습니다. 그러나 sfc /scannow 명령을 실행하여 이 파일을 Driver.cab 파일에서 Dllcache 폴더로 채웁니다.

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

다음 레지스트리 키의 SFCDllCacheDir 값(REG_EXPAND_SZ)은 Dllcache 폴더의 위치를 지정합니다.

HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon

SFCDllCacheDir 값을 위한 기본값 데이터는 %SystemRoot%System32입니다. SFCDllCacheDir값은 로컬 경로일 수 있습니다. 기본적으로 SFCDllCacheDir 값은

HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogon

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

WFP 기능에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
222473 Windows 파일보호를 위한 레지스트리 설정

Windows XP 및 Windows Server 2003의 시스템 파일 검사기 도구에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
310747 Windows XP 및 Windows Server 2003 시스템 파일 검사기(Sfc.exe)에 대한 설명

Windows 2000의 시스템 파일 검사기 도구에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
222471 Windows 2000 시스템 파일 검사기에 대한 설명

참조WFP 기능에 대한 자세한 내용을 보려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://msdn.microsoft.com/library/en-us/wfp/setup/windows_file_protection_start_page.asp

Windows Installer 및 WFP에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.
http://msdn.microsoft.com/library/en-us/msi/setup/windows_file_protection_on_windows_2000_and_windows_xp.asp