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

Название темы: Смерть WFP
Показать сообщение отдельно

Ветеран


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

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


Vadikan

Сперва немного теории о том какие файлы задействованы в WFP.
Исполнимая часть WFP называется System File Checker (SFC), в ней задействованы файлы SFC.DLL, SFC_OS.DLL, SFCFILES.DLL и SFC.EXE.
SFC.EXE - утилита для сканирования изменений защищенных файлов и восстанавл. оригинальных файлов.
Содержание файлов SFC.DLL и SFC_OS.DLL изменяется в завсисимости от версии. В Windows XP, SFC_OS.DLL содержит ядро и исполнимый код SFC, а SFC.DLL это просто прокси для него.
SFCFILES.DLL это контейнер с даннынми, в кот. содержится список защищенных файлов.
Т.о. модифицируя SFCFILES.DLL и/или SFC_OS.DLL можно обойти WFP.

На сегодняшний день используется 2 основных метода обхода WFP
1. Метод используемый nuhi в nLite (не уверен что это его изобретение).
2. Метод RaveRod.
Есть и еще методы например тот, на кот. давал ссылку Vadikan, основан на очистке списка защищенных файлов в sfcfiles.dll, выложенный там файл не рабочий, на t-13 выдает ошибку.
Недавно нашел ещё хакнутую sfc_os.dll от RyanVM, кот отключает WFP без вмешательства в реестр и ключей winnt.sif, но как она работает пока понять не удалось, может он сам ответит.
-------------------------------------------
В статье описан несколько устаревший вариант используемый в предыдущих версиях nLite. На сколько я смог разобраться сейчас nLite патчит только sfcfiles.dll, очищая в нем файлы: sfcfiles.dll, sysetup.dll, tcpip.sys (эти файлы модифицируются nLite)
Кроме того в hivesft.inf добавляется стока
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","SfcDisable",0x00010000,0xFFFFFF9D
которая собственно и откл. WFP

Недостатками этого метода:
- невозможно удалить ненужные папки в %ProgramFiles% (microsoft frontpage, msn gaming zone, xerox и др.)
- некоторые программы при установке сбрасывают ключ SFCDisable в 0, что атоматически вкл. WFP.
-------------------------------------------
Метод от RaveRod, основан на хаке sfc_os.dll, при этом в нем меняются:

По смещению (00000F82):
44 00 69 00 73 00 61 00 62 00 6C 00 65
поменять на:
53 00 65 00 74 00 74 00 69 00 6E 00 67

По смещению (0000ECE9):
33 C0
поменять на:
EB 01

Первый патчик меняет ключ SFCDisable на SFCSetting, второй убирает предупреждающее окно о замене файлов. Переименован, потомучто ключ SFCDisable после установления некоторых программ переключается в 0 (это недостаток 1го метода от nLite).
Чтобы все это дело работало надо в HIVESFT.INF прописать
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","SFCSetting",0x00010001,0xFFFFFF9D

Недостаток этого метода: не позволяет заменять системные файлы вручную вплоть до 1го логона в систему (т.е. просто переписать в процессе установки файлы получится, но они через какое-то время меняются на оригинальные). Если вам это нужно, то вручную отредактируйте sfcfiles.dll, с помощью hex-редактора занулить нужные названия файлов.

Осталось выяснить нужен ли в winnt.sif параметр SFCDisable или нет. Как показала практика (установки с различными методами) - не нужен.

Последний раз редактировалось EgOrus, 27-11-2005 в 23:10.

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

Отправлено: 19:19, 27-11-2005 | #6

Название темы: Смерть WFP