Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Boa Soft

Компьютерный шаман


Сообщения: 2910
Благодарности: 956

Профиль | Сайт | Отправить PM | Цитировать


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

Большая часть важных для системы файлов в Windows Xp защищена от удаления и изменения
функцией WPF - windows file protection.

Если Вы хотите удалять или изменять некотрые файлы, то система не даст этого сделать,
вернее обойти это можно, но при запуске sfc произойдет замена файлов на оригигальные
или же последует вопрос на вставку диска с дистрибутивом.

Можно полностью отключить защиту, но тогда система становится беззащитной перед
шаловливыми руками юзьверя или кривоперепакованными дистрибутивами игрушек.

Результат - отсутствующие файлы, Dll hell и падение системы.

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

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

Проограмма дествует очень просто

Какие файлы защищены - это система узнает из SfcFiles.dll. Эта библиотека не несет в себе прямых функций защиты, а только выдает список защищенных файлов.

Там находятся списки защишаемых фалов, целых 5 штук для разных систем:
Xp pro
Xp home
Xp tablet PC
Xp mediacenter
Xp starter

В серверной библиотечке тоже 5 списков, но их назначения (соответствия версиям продуктов) я не выяснял.

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

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

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

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

Прверялось с SfcFiles.dll от windows sp2 rus/ sp2 en/ sp1 server rus.
(Во всей линейке OS одного семейства и сервиспака библиотека одинакова!)

С другими версиями программа так же должна работать.

Проверить правильность работы можно на рабочей OS, временно заменив оригинальную библиотеку на патченую, проигнорировав крик о вставке диска и перезагрузившись.

SFC /scannow должно работать!!! Если нет - то увы.

-------
Человеческая лень - главная движущая сила технического прогресса.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:13, 03-04-2008 | #95