PDA

Показать полную графическую версию : Патч SfcFiles.dll


Страниц : [1] 2 3 4 5 6 7 8 9

Boa Soft
28-06-2007, 16:04
SfcFiles patch v3.1

Совместимо с SP3 и Server 2003

Эта программа была специально написана для применения с пакетом обновлений и предназначена для выведения из списков защиты WFP некотрых файлов, не отключая ее совсем.

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

Кроме того, при некотрых обстоятельствах SFC вообще не работает.

Версия по алгоритму с MSFN иногда вызывает BSOD.

Поэтому был пересмотрен алгоритм патчаыы
Проограмма дествует очень просто

Какие файлы защищены - это система узнает из 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 sp3/ sp2 rus/ sp2 en/ sp1 server rus.
(Во всей линейке OS одного семейства и сервиспака библиотека одинакова!)

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

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

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


Новое в текущей версии.

1. Исправлена проблема с патчем для server - теперь патчатся все 7 таблиц.
2. Программа понимает относительные пути.

Скачать программу можно по ссылке:

sfcpatc.7z (http://tools.oszone.net/BoaSoft/tools/sfcpatc.7z)

Для пакета обновлений для Sp2:
Потом распакуйте архив и скопируйте файл в папку пакета обновлений, заменив старую версию. Работа проверена на рабочей системе XP Pro sp2 rus

Для пакета обновлений для Sp3:
Данный релиз включен в основную версию пакета. Всестороннее тестирование показало отсутствие проблем в данной версии.

Baw17
30-07-2007, 11:13
Boa Soft а если дистрибутив уже собран можно в дистрибутиве поменять просто файл

Boa Soft
30-07-2007, 12:38
Baw17 Boa Soft а если дистрибутив уже собран можно в дистрибутиве поменять просто файл

Придется вручную создать KillWpf.lst, просто обьединив списки из всех аддонов, пропатчить ОРИГИНАЛЬНЫЙ распакованный файл новой версией патчера и запаковать в каб. Затем заменить в дистрибутиве. Но, проще пересобрать. Тем более, что в новой версии пакета патчер обновлен до текущей версии.

Baw17
30-07-2007, 13:39
Boa Soft так я и спрашиваю в новой версии пака 7.7.29 уже новый Патч SfcFiles.dll ?

и внести эту информацию в шапку обязательно чтоб небыло путаницы

Jilted
23-08-2007, 14:16
Предлагаю сделать аддон с вариантом от XXXler
http://forum.oszone.net/post-591590-16.html
Для тех, кто хочет ПОЛНОСТЬЮ избавиться от WFP !

Petya V4sechkin
31-08-2007, 14:35
Boa Soft, я лично словил глюк с winlogon.exe, такой же, как у dimon1947.
Проявился не сразу, а после установки драйверов/софта (для ноута). Причем только со вставленной флешкой. Вынимаю флешку - нормально грузится. Вставляю и перезагружаюсь - ошибка winlogon.exe.
В журнале событий:
Тип события: Уведомление
Источник события: DrWatson
Категория события: Отсутствует
Код события: 4097
Дата: 31.08.2007
Время: 12:10:20
Пользователь: Н/Д
Компьютер: Х
Описание:
Приложение \??\C:\WINDOWS\system32\winlogon.exe вызвало ошибку Ошибка в 31/08/2007 @ 12:10:20.250 Вызвано исключение c0000005 по адресу 76C6310D (sfc_os!Ordinal1)
Причина исключительно в Sfcfiles.dll. Заменяю ее на оригинальную (непатченую) либо пропатченую предыдущей версией Sfcpatch.exe, и все становится хорошо.

Sfcpatch.exe отрабатывает корректно, просто системе в каких-то случаях не нравится новый формат Sfcfiles.dll. Так что придется заменить Sfcpatch.exe на старый, проверенный временем.

К тебе претензий нет, это все тлетворное влияние запада (MSFN, то есть :))
А мне придется выпустить обновление для UpdatePack'а (блин, уже 4-й раз за месяц). Короче, я погрузился в тяжкую депрессию и черную меланхолию...

AppleNTU
31-08-2007, 15:54
Petya V4sechkin,

А мне придется выпустить обновление для UpdatePack'а (блин, уже 4-й раз за месяц). Короче, я погрузился в тяжкую депрессию и черную меланхолию...

Зачем? ненадо пусть выйдет обновление майкрасофта и соберёш просто новый пак!!!! а там сказать чтобы заменили просто новый Патч SfcFiles.dll на старый или типа фикса исравление с заменой файла. а то поновой качать! новый дистриб готовить! а то все и сразу!

:o не надо меланхолии! не пугай а то пол инета выпадет в осадок!!! и начнется всеобщая паника

Petya V4sechkin
31-08-2007, 15:56
AppleNTU, я не всерьез, просто досадно очень.

Boa Soft
31-08-2007, 17:58
Petya V4sechkin,

Самое печальное, что я словил этот глюк сегодня. После установки KAV. С отключенным KAV нормально, если включить - та же самая ошибка. Вылечилось заменой библиотеки от прошлого пакета, патченой старым вариантом. Самое интероесное - в системе была куча логических дисков (два винта, штук 8 разделов :) )


Сегодня возму ida и буду с пристрастием потрошить SfcFiles.dll.

Наверное, сделаю замену на %Windir% - эта папка, которую ни кто в здравом уме на рабочей системе удалять не будет.

Opolon
31-08-2007, 21:09
я погрузился в тяжкую депрессию и черную меланхолию... >>>
Не надо!!!
Всё в порядке с кем не бывает.
Скачаем по новой даже не учитывая что сижу на дайлапе )))

Righter
31-08-2007, 21:23
Petya V4sechkin, а для чего вообще нужен этот файл?
Он шел в Windows и вы его меняете на тот, который шел в каком-то критическом обновлении?

Severny
31-08-2007, 22:15
Petya V4sechkin, Boa Soft,
Речь об этом?

Boa Soft
01-09-2007, 03:24
Severny

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

Dilinjer
02-09-2007, 14:44
Boa Soft, а можно если не затруднит, разжевать что находиться в SfcFiles.dll ?
Типа список файлов I386 с их чексуммами для всех типов лицензий (OEM,Retail,VLK) для Professional и Home ?

Boa Soft
02-09-2007, 16:31
Dilinjer,

Там находится 5 строковых таблиц - имена файлов в unicode. Только имена. В пределах sp у всей линейки она идентична. Таблицы для Pro, Tablet, MCE, Home, Starter. Так же, там 5 массивов указателей на эти файлы. Каждая запись занимает 3 двойных слова. Вот этот массив я и патчил в этой версии.

CRC сдесь не хранится. Только имена с путями. Просто система по списку при помощи хранилища каталогов цивровых подписей поредством службы криптографии выполняет проверку файлов.



Так можно получить список файлов, но только для текущей системы:


type
TSfcList = record
wcsFileNameInDllCache: PWideChar; // Name of the file in DllCache
wcsFilePath: PWideChar; // Path of the protected file
wcsWhatEverInfFile: PWideChar; // Name of some INF file ... unknown meaning
end;
TSfcListArray = array[0..0] of TSfcList;
PSfcListArray = ^TSfcListArray;

function SfcGetFiles(
var lpNamelist: PSfcListArray;
var lpNumEntries: DWORD
): DWORD; stdcall; external 'sfcfiles.dll';
(* Call and then iterate through the array with wide strings NumEntries times. *)

<>

if SfcGetFiles(namelist,num); = ERROR_SUCCESS then
for i:=0 to num-1 do begin
Writeln(String(namelist^[i].wcsFilePath));
//Writeln(String(namelist^[i].wcsFileNameInDllCache));
//Writeln(String(namelist^[i].wcsWhatEverInfFile));
//Writeln('');


end;

volk1234
03-09-2007, 00:43
я сегодня на виртуальной машине проверил sfcfiles.dll вроде все в порядке. Однако есть небольшие вопросы здесь (http://forum.oszone.net/thread-89573.html) . Может Boa или еще кто подскажет?

Boa Soft
05-09-2007, 12:37
Новая версия 3.1

Новое в текущей версии.
1. Благодаря помощи Oleg_Sch патч не зависит от версии библиотеки.
2. Добавлены проверки на корректность формата исходного файла и точности получения списков.
3. Добавлены коды возврата.
4. Убран лог (перенаправление вывода через > заменит его при нужде).
5. Добавлены коды возврата.
6. Добаавлена обработка ошибок.
7. Исправлена документация.
8. Добавлена возможность получения всего списка защищенных файлов.

Ссылка в шапке.

volk1234
05-09-2007, 19:13
проверил вроде все норм.sfc /scannow успешно
мусор о которм я писал (http://forum.oszone.net/thread-89573.html) в журнале остался

конфигурация системы и список аддонов с которыми ставился сабж там же (по ссылке)

Boa Soft
05-09-2007, 23:31
volk1234, мусор о которм я писал в журнале остался »

Это хорошо. Мусор же, похоже, имеет другие корни.

IDDQDesnik
01-12-2007, 19:11
Boa Soft,
ну так что, версия 3.1 прошла тест?




© OSzone.net 2001-2012