PDA

Показать полную графическую версию : [addon] Fake-Setup Advanced


Страниц : [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

Mr dUSHA
14-10-2008, 00:31
Fake-Setup Advanced

Шапка темы (https://web.archive.org/web/20211009112644/http://forum.oszone.net/thread-119984.html) до удаления её автором.

Debugger
14-10-2008, 00:44
Mr dUSHA, великолепно! А нельзя ли добавить функционал фейк-сетапа от Boa Soft? Конкретно интересует возможность выбора распаковываемых пакетов, и задание что распаковывать по умолчанию а что нет. Есть и еще пожелания но позже.

Mr dUSHA
14-10-2008, 00:49
Распаковка драйверов будет, но только в автоматическом режиме и без графического интерфейса с возможностью выбора пакетов.

Другие пожелания также можете огласить ;)

Debugger
14-10-2008, 01:25
Mr dUSHA, вообще, фейк-сетап от Boa Soft привлекает именно возможностью ВЫБОРА распаковываемых пакетов, установки панелей управления и многими другими фичами.
Но тут я вижу очень навороченный фейк-сетап с полным избавлением от головняка из-за цифровых подписей, но лишенного всех преимуществ фейклсетапа от Boa Soft... Иными словами если я раньше разрывался между Башратовским интегратором и Boa Soft'овским, то теперь еще и Ваш добавился...
Mr dUSHA, Boa Soft, а почему бы Вам не объединиться и не сделать общими усилиями навороченный и удобный фейк-сетап, в котором сольются все преимущества и того и другого?...
Mr dUSHA, если уж изменить ничего нельзя, можно выложить уже пропатченные библиотеки с теми изменениями, что вносятся только в памяти? Чтобы можно было использовать Ваши фичи и в другом фейк-сетапе?.. Понятно, что они так и останутся патчеными и в дальнейшем могут с этим быть проблемы, но может быть получится хотя бы самому объединить преимущества обоих фейк-сетапов...
Добавлено: а можно сделать отдельную прожку, которая бы при запуске патчила эти файлы в памяти?

Mr dUSHA
14-10-2008, 02:22
Mr dUSHA, если уж изменить ничего нельзя, можно выложить уже пропатченные библиотеки с теми изменениями, что вносятся только в памяти? Чтобы можно было использовать Ваши фичи и в другом фейк-сетапе?.. »
Вы можете скачать исходники утилиты, и там в файле main.h найдете все патчи для всех библиотек и их версий.
Фактически эти "патч-блоки" - это результаты вывода утилиты FC при сравнения оригинальной ДЛЛ с патченой, но только обрамленные в синтаксис С++. По них вы руками в шеснадцатиричном редакторе сможете сделать нужные патчи для нужных вам библиотек.

Кроме того дополнительная информация есть здесь:
Внутренности Установщика WinXP (http://forum.oszone.net/thread-106849.html)

Mr dUSHA
16-10-2008, 01:11
История изменений:

Некоторые правки и багофиксы как в исходниках, так и в самом аддоне.
Теперь все интегрируется и работает нормально.

aset
16-10-2008, 20:29
Mr dUSHA,
а можно ли чтоб fake setup использовал батник чтоб перед установкой спрашивал пароль, если не правильно то ребут

и сам батник если у кого есть

Mr dUSHA
17-10-2008, 13:50
а можно ли чтоб fake setup использовал батник чтоб перед установкой спрашивал пароль, если не правильно то ребут »
PreSetup.cmd вы можете для этого использовать.
А самой спрашивалки пароля у меня готовой нет... Но вы можете самостоятельно найти подходящую вам, и прописать ее запуск в PreSetup.cmd.

SamLab
17-10-2008, 14:39
Каким образом Фейк Сетап делает это - Патч системных библиотек syssetup.dll и setupapi.dll для комплексного решения всех проблем с автоматической установкой драйверов, не имеющих цифровых подписей, на графическом этапе установки?

Mr dUSHA
17-10-2008, 20:33
Каким образом Фейк Сетап делает это »
1. Патч syssetup.dll, устанавливающий обе политики (DriverSigningPolicy, NonDriverSigningPolicy) в "0". Патч производится в функции, читающей эти параметры из winnt.sif, так что установка этих параметров как через winnt.sif, так и через HIVE-файлы больше не нужна.

2. Патч в syssetup.dll, отключающий повышение политики DriverSigningPolicy из "0" в "1" в случае если при установке драйвера происходит установка стороннего не подписанного SYS-файла, имя которого присутствует в списке защиты, то есть в дистрибутиве уже есть драйвер, скорей всего более старый, с тем же именем.
(это именно то, с чем боролась утилита WatchDriverSigningPolicy.exe)

3. Патч в setupapi.dll, отключающий понижения ранга неподписанных драйверов при выборе наиболее подходящего драйвера установщиком для устройства.
Этим снимается необходимость удаления из дистрибутива старых подписанных MS-овских драйверов для автоматической установки новых но не подписанных. То есть при установке драйвера будет установлен драйвер с наиболее подходящим HWID и наиболее свежей датой. Цифровая подпись на критерии отбора больше не влияет.

aset
18-10-2008, 12:33
Mr dUSHA,
а какая должна быть спрашивалка пароля под Дос или Win

Debugger
18-10-2008, 20:19
То есть при установке драйвера будет установлен драйвер с наиболее подходящим HWID и наиболее свежей датой. Цифровая подпись на критерии отбора больше не влияет. »
И я так понимаю теперь можно не боясь править любые inf-файлы.

Mr dUSHA
18-10-2008, 21:05
И я так понимаю теперь можно не боясь править любые inf-файлы. »
Да, конечно.
Я например люблю чистить драйверы от всяческих ленг-паков (ну зачем мне китайский язык? :) ), и прочих относительно бесполезных вещей....

А еще конкретный яркий пример с драйвером для IDE-контролера на nForce2 Ultra, последние версии которого не имеют подписи вообще в оригинальном пакете с сайта nVidia, и из-за этого система ставит вместо родного nVidia-драйвера, драйвер "Стандартный IDE контролер на шине PCI".
С патчем ставится родной неподписанный nVidia-драйвер без каких-либо дополнительных телодвижений.

vserd
19-10-2008, 00:25
а какая должна быть спрашивалка пароля под Дос или Win »
без разницы. Может быть как текстовая, так и графическая. Главное чтобы на выходе было значение (ExitCode), можешь в темах по командным файлам на руборде поискать. Там помоему были примеры как спрашивать пароли, и утилиты для перезагрузки системы....

underr
19-10-2008, 21:03
Mr dUSHA, у BoaSoft было реализовано копирование дистра в папку установленной Windows с переопределением переменной. Было очень удобно. Вы ничего подобного не планируете реализовать?

Mr dUSHA
19-10-2008, 23:48
было реализовано копирование дистра в папку установленной Windows с переопределением переменной. Было очень удобно. Вы ничего подобного не планируете реализовать? »
В исполняемом коде - скорей всего нет. Возможно в скрипте будущего PostSetup.cmd

YikxX
20-10-2008, 08:15
DrvFolder – указывает папку, в которой расположено дерево каталогов драйверов. Путь указывается относительно корневого каталога системного диска.
По-умолчанию DrvFolder=\D » Это та самая папка, куда посредством команд из presetup.cmd распаковываются пакеты драйверов?
DisableSFC – указывает, отключать ли защиту файлов после завершения установки ОС. Отключение защиты реализуется патчем библиотеки sfc_os.dll и установкой в реестре параметра SfcDisable=0xFFFFFF9D.
По-умолчанию DisableSFC=1 » А зачем это нужно? Не столкнется ли пользователь потом с проблемами (замена системных библиотек кем не попадя, заражение их вирусами и т.п.) при полном отключении SFC?
sfc_os.dll
- Отключение запуска сканирования всех защищенных файлов на Т-10 графического этапа установки (экономия 10 минут). » Я не совсем понял - эта фишка реализуется без полного отключения SFC (для меня это неприемлимо) или нет?

Dilinjer
20-10-2008, 10:49
sfc_os.dll
- Отключение запуска сканирования всех защищенных файлов на Т-10 графического этапа установки (экономия 10 минут). »
Я не совсем понял - эта фишка реализуется без полного отключения SFC (для меня это неприемлимо) или нет? » - я незаморачиваюсь по этому поводу, при первом логоне заменяю sfc_os.dll на оригинальную и сбрасываю параметр реестра SFCDisable в 0.
dUSHA, у BoaSoft было реализовано копирование дистра в папку установленной Windows с переопределением переменной. Было очень удобно. Вы ничего подобного не планируете реализовать? » - я например, на T-12 копирую дистрибутив в %SystemRoot% и в реестре при первом логоне добавляю: REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup" /v "Installation Sources" /t REG_MULTI_SZ /d %SystemRoot%\ /f >nul
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup" /v ServicePackSourcePath /t REG_SZ /d %SystemRoot%\ /f >nul
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup" /v SourcePath /t REG_SZ /d %SystemRoot%\ /f >nul
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v SourcePath /t REG_SZ /d %SystemRoot%\ /f >nul Здесь бы была очень полезной тулза, написанная, например на ASM'е, которая бы извлекала из пропадченной SFCFILES.DLL список файлов для которых сработает SFC, и копировала из дистрибутива только те файлы которые есть в %SystemRoot% и в SFCFILES.DLL, а так приходиться копировать весь дистрибутив где много лишнего :(

ЗЫ: Все это уже обсуждалось в теме Внутренности Установщика WinXP (http://forum.oszone.net/thread-106849-6.html)

Mr dUSHA
20-10-2008, 11:49
Это та самая папка, куда посредством команд из presetup.cmd распаковываются пакеты драйверов? »
Да. Именно так.

А зачем это нужно? Не столкнется ли пользователь потом с проблемами (замена системных библиотек кем не попадя, заражение их вирусами и т.п.) при полном отключении SFC? »
Отключение защиты реализуется патчем дискового файла библиотеки sfc_os.dll и установкой в реестре параметра SfcDisable=0xFFFFFF9D.
Если вы не хотите отключать SFC, то ставте DisableSFC=0

Я не совсем понял - эта фишка реализуется без полного отключения SFC (для меня это неприемлимо) или нет? »
Эта фишка реализуется путем патча библиотеки sfc_os.dll в памяти. действует этот патч только на графическом этапе установки, поскольку дисковые файлы не правятся. И направлен патч только на то, чтоб сэкономить несколько минут на этапе Т-10-Т-8.

Если вы хотите, чтоб после перезагрузки в конце графического этапа SFC снова включилась, то просто ставте DisableSFC=0.

Здесь бы была очень полезной тулза, написанная, например на ASM'е, которая бы извлекала из пропадченной SFCFILES.DLL список файлов для которых сработает SFC, и копировала из дистрибутива только те файлы которые есть в %SystemRoot% и в SFCFILES.DLL, а так приходиться копировать весь дистрибутив где много лишнего »
Можно конечно и на ASM'е, это дело вкуса :)
Но ASM в данном случае не будет более эффективным, чем С++ :)

Другое дело, что копировать из дистрибутива нужно не все файлы из %SystemRoot%, а все файлы из списка SFCFILES, соответствующего этой системе (PRO, HOME, etc...).
Но сама идея действительно интересная. Я ее обязательно реализую, как и встроенный патчер SFCFILES.DLL.

YikxX
20-10-2008, 12:30
Если вы хотите, чтоб после перезагрузки в конце графического этапа SFC снова включилась, то просто ставте DisableSFC=0. » Т.е я получу уменьшение времени установки на несколько минут даже при использовании параметра DisableSFC=0 ?




© OSzone.net 2001-2012