УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS

       

Патч Sfcfiles.dll


В составе Update pack приcутствует патч SFCfiles.dll, написанный участником конференции BoaSoft. Взаимодействовать с патчером возможно путем конфигурационных файлов KillWFP.lst, DelDrv.lst, DelOC.lst. Синтаксис простой: имя файла (с расширением), для которого необходимо отключить WFP и/или который необходимо удалить из дистрибутива.

Описание патча sfcfiles.dll предоставим автору:

Зачем это нужно?

Большая часть важных для системы файлов в Windows XP защищена от удаления и изменения функцией WPF (Windows File Protection). Если вы хотите удалять или изменять некотрые файлы, система не даст этого сделать. Точнее, это ограничение можно обойти, но при запуске SFC произойдет замена файлов на оригинальные или же последует запрос на вставку диска с дистрибутивом. Можно полностью отключить защиту, но тогда система становится беззащитной перед шаловливыми руками пользователя или криво перепакованными дистрибутивами игрушек. Результат - отсутствующие файлы и падение системы.

В большинстве случаев требуется исключить лишь несколько фалов. Этого можно легко достичь патчем SfcFiles.dll, заставив библиотеку "забыть" о этих файлах.

Алгоритм работы

Программа действует очень просто. Операционная система определяет, какие файлы защищены, на основе информации, содержащейся в библиотеке SfcFiles.dll. Эта библиотека не несет в себе прямых функций защиты, а только выдает список защищенных файлов. Там находятся списки защищаемых файлов, целых 5 штук для разных систем:

XP Pro

XP Home

Xp Tablet PC

XP Media Center Edition

XP Starter

В серверной библиотечке тоже 5 списков, но их назначения (соответствия версиям продуктов) не выяснены. Система защиты получает список защищенных файлов с полными путями из этой библиотеки, вызывая API - функцию SfcGetFiles. Нам же требуется, чтобы в этот список не попали нужные нам файлы.

В 3-й версии патчера применен новый алгоритм - патчатся не строковые значения, а таблица указателей. Этих таблиц также 5 - по числу версий продукта.
В этой таблице просто происходит подмена указателей на выводимые из защиты файлы на указатель на любой из оставшихся файлов. В результате при выдаче списка файлов некоторые файлы будут присутствовать более одного раза, а работа SFC никак не изменится - все невыведенные файлы будут защищены.

Патчер автоматом корректирует CRC в PE заголовке файла, после чего файл готов к применению. Если в логе говорится, что файл не найден, скорее всего он не входит в список защищенных. Для стабильного результата патчите всегда оригинал, хотя повторный патч библиотеки, уже пропатченной этой версией патчера, не приведет к ошибке.

Важно! Если патчить библиотеку, ранее уже патченную более старыми версиями патчера или другими утилитами, то возможны разные непредсказуемые проблемы.

Проверялось с SfcFiles.dll от Windows XP SP2 rus/ SP2 en/ SP1/2003 Server rus. (Во всей линейке ОС одного семейства и пакета обновлений библиотека одинакова!). С другими версиями программа также должна работать. Проверить правильность работы можно на рабочей ОС, временно заменив оригинальную библиотеку на патченую, проигнорировав запрос о вставке диска и перезагрузившись.

Патчер не нарушает работу функции восстановления системных файлов командой SFC /scannow.

 К содержанию


Содержание раздела