Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Смерть WFP (http://forum.oszone.net/showthread.php?t=46577)

WCR 12-03-2005 08:43 305983

Смерть WFP
 
Здраствуйте. Вопрос такой: как при установке полностью отключить проверку "правильности" файлов? А то в начале графической части установки мне дарят подарок типа: Критическая ошибка. Продолжение установки не возможно... и всё такое, какие-то подписи неправильные.
(код ошибки 800b0100)
Обидно, и очень охото заменить logonui.ex_ ntoskrnl.ex_ (может ещё что-нибудь). Я скачивал патченый sfc_os.dl_ с
unattended.msfn.org , ломанный winlogon с ним проканал, а всё остальное - нехочет. Как убить такую проверку? :moderator
И ,да, где взять вторую BCDW?
OC: Винdows XP Professional SP 2 RUS

Заранее благодарен.

EgOrus 24-11-2005 06:32 377105

Возникла такая проблемма: при установке винды на стадии t-12 (и для надежность при первой загрузке) заменяются файлы notepad.exe и mstsc.exe, mstscax.dll на более новые в системных каталогах, при этом произведен хак SFC_OS.DLL на предмет отключения WFP. Тем не менее сразу после загрузки файлы меняются на оригинальные.
Пробовал вручную патчить SFC_OS.DLL, пробовал подсовывать файлы SFC_OS.DLL и SFCFILES.DLL от nlite, пробовал устанавливать с параметрами в winnt.sif :
Код:

[SystemFileProtection]
    SFCQuota=0 
    SFCScan=0
    SFCDisable=ffffff9d

При этом почему-то после установки ключ
Код:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"SFCDisable"=dword:FFFFFF9D

в системе не наблюдается

WFP отключается только при самостоятельном внесении данного ключа в реестр.
Что-то я не понимаю, получается хак SFC_OS.DLL не работает!???, вернее работает не на 100% т.к. никаких сообщений не появл., измененный файл просто молча заменяется на оригинал.

Vadikan 24-11-2005 07:27 377110

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

EgOrus 24-11-2005 09:25 377130

Vadikan
он выкладывал эту же инфу в топик по WFP на msfn.
Он пишет что sfc_os.dll хак полностью не отключает WFP.
Основной смысл: обычно программы заменяют системные файлы путем пометки нужных файлов на переименование с заменой защищенных файлов после ребута при загрузке системы, при этом в реестре должен подниматься флаг (значние) AllowProtectedRenames, который санкционирует эту замену. Так вот при использовании патченного sfc_os.dll этот ключ появляться не будет в любом случае. Поэтому файлы заменяться не будут.
В качестве решения он предлагеет не патчить sfc_os.dll, а очистить список защищенных файлов в sfcfiles.dll.
К сожалению это никак не объясняет мою ситуацию, когда форсировано скопированные файлы заменяются на оригинальные. Причем не важно на какой стадии установки. раньше я с этим не парился, а просто подменял необходимые файлы в дистре (notepad.ex_, notepad.ch_), сейчас же пытаюсь дистр трогать как можно меньше и сразу встала проблемма с WFP.

В nlite sdc_os.dll хак теперь тоже не используется, патчится sfcfiles.dll, но в нем обнуляеются только некоторые файлы, кроме того добавляется ключ в HIVESFT.INF:
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","SfcDisable",0x00010000,0xFFFFFF9D

Также непонятно что делает и как отрабатывается секция [SystemFileProtection] в winnt.sif, нужно ли ее использовать при хакнутых фалах, или нужно откл. и добавлять ключик SFCDisable через реестр, в некот. же случаях SFCDisable не используют а используют SFCSettings=0, в общем инфы много и четкости в мозгах нет, хотелось бы прояснить ситуацию, если нчиего не получится, в крайнем случае придется наверное вручную вырезать из sfcfiles.dll нужные мне файлы.

Vadikan 25-11-2005 00:51 377377

EgOrus
Я в тему WFP плотно не вникал, если у тебя что-то получится, изложи и я добавлю в статью.

EgOrus 27-11-2005 19:19 378004

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 или нет. Как показала практика (установки с различными методами) - не нужен.

Solid Snake 07-07-2006 06:43 458737

У меня обратный вопрос. Как полностью включить WFP на установленной системе?

simplix 07-07-2006 11:13 458822

EgOrus
Цитата:

в крайнем случае придется наверное вручную вырезать из sfcfiles.dll нужные мне файлы
В апдейтпак входит sfcpatch, делает то же самое.

EgOrus 08-07-2006 10:36 459110

simplix
если ты внимательно посмотришь на дату поста, и дату появления аддона sfcpatch от BoaSoft, кототрый первоначально появился как отдельный аддон, то поймешь что было написано это задолго до его появления

Vadikan 09-07-2006 04:40 459377

EgOrus
Цитата:

что было написано это задолго до его появления
Угу, и старой статьи про WFP уже нет, точнее теперь просто предлагается это сделать при помощи новой версии nLite.


Время: 18:07.

Время: 18:07.
© OSzone.net 2001-