Всем xakep’ам по Hi!

Надоело мне как-то раз смотреть на унылый вид загрузки win2kpro
(машина у меня не настолько быстрая, что бы не успевать его показывать 😉
и решил я это дело, если можно так выразиться, редезигнить. А за
одно и все остальное, что под руку попадется. А результатами
делюсь с вами…

Загрузка

Мелкомягкие пожались и на открытое оборзение в виде logo.sys
картинку не выложили, а спрятали в ntoskrnl.exe, что в папке 
[%WINNT%\System32\] хранится (да там почти все хранится… 
помойка вселенская просто!). Да еще и на цвета пожадничали (что это с ними?) —
всего 16. Ну да ладно, и это не беда. Так вот хранится там следующее:

(для win2kpro, для остальных там же, но индекс ресурса другой)

[1] — Картинка от загрузки (640x480x16)
[7] — Картинка от предзагрузочных операций (проверка диска, конверт. partitions…) (640х120х16)

Извлекать и внедрять правленные ресурсы можно например ResHacker’ом:

http://www.rpi.net.au/~ajohnson/resourcehacker/

Нужно обратить особое внимание на то, что картинка должна быть 640х480(120)х16,
иначе она не загрузится.

Скроллинг полосы-градиента организуется элементарно — область скрола просто попиксельно
самозаворачивается движком. Никаких геморроев
с палитрой как win9x. (За это спасибо!)

Квадратики прогресса прибиты к своему месту (я думаю не сложно догадаться куда).

Теперь немного о палитре. 
Индексация палитры начинается с 0.

[00] — Цвет рамочки по периметру экрана (область вокруг текста и графики в VGA)
[01] — Цвет квадратиков прогресса загрузки
[..]
[09] — Цвет нижней плашки на экране предзагрузочных операций
[..]
[15] — Цвет текста на экране предзагрузочных операций

Продолжение загрузки

После того как фантазия, опьяненная свободой, до неузнаваемости разрисует
загрузочное лого (благо 16 цветов ее будут хоть как-то придерживать :),
все остальное (а именно похожая картинка на белом фоне при загрузке настроек
пользователя и диалоговое окно запроса пароля и имени пользователя) сразу
выпадут из концепта дезигна. Это не эст хорочо. Будем исправит. 

Весь этот ливер хранится в файлике msgina.dll (все в той же помойке):

[101] — Картинка загрузки настроек
[107] — Картинка ввода пароля и пользователя
[103] — Скролящаяся полоска, накладываемая на обе картинки

С этими картинками легче — они могут быть 256-ти цветными, но размеры фиксированы.

Выключение

Разумеется в наш век АТХ корпусов и ACPI ядра для win2k мало кто смотрит на
картинку "it is now safe to turn off your computer» и подготовку к выключению или
гибернацию, но для полноты картины нужно «редезигнить» и их.

Файл ntoskrnl.exe:

[2] — Картинка «Hibernating»
[3] — Картинка «It is now safe…»
[5] — Картинка с логотипом для обеих.

Кстати нужно отметить что они 16-ти цветные и ничего на них не скролится, зато
есть некоторые эффекты палитры:

[02] — Цвет фона под окошком, якобы Desktop.

Другие мелочи

Ну oemlogo.bmp и oemlogo.inf сейчас никого не удивить, да и папочкой web — тоже,
но вот дебильный монитор в 16-ти уродских цветах аккурат над местом для oemlogo.bmp
IMHO может достать кого угодно (меня — достал!). Его и заменить не грех. 

Хранится эта картинка в файле sysdm.cpl (в помойке). Она там
одна, ошибиться невозможно. Кстати она поддерживает не только 16 но 256 цветов.

Еще эта картинка есть в файле cmprops.dll, но она не действует.
Возможно из этой библиотеки она берется только если свойства компутера
вызываются как-то хитро, но я не знаю…  

Рабочие продробности

Для тех кто на локомотиве сделаю небольшое дополнение о том как эти библиотеки
правильно подменять.

Править ресурсы нужно на скопированных библиотеках, а не в виндовой директории.
СОХРАНЯТЬ КОПИИ. Еще раз — СОХРАНЯТЬ КОПИИ. По
умолчанию win2k сильно умен и пытается подменить нашу правленую библиотеку на 
свою из дистрибутива или папки [%WINNT%\System32\dllcache] (прямо мыльная опера
какая-то! :). Этим грязным делом занимается sfc. Описание борьбы с нею можно
найти практически на любом информационном сервере, но смотрите не заборитесь — 
вещь все-таки полезная.

Но помимо sfc возникнет и еще одна проблема — а именно то, что библиотека msgina.dll
при работающих виндах — занята и перезаписать ее невозможно. Для тех у кого
win2k стоит на FAT’e это не проблема, а вот что делать с NTFS?

Решается это просто — нужно поставить себе на винт (или грузануться с дистрибутива
win2k) Recovery Console. Перегрузится в RC, выбрать нужную винду, ввести пароль админа
и заменить библиотеку командой copy. Все. Хотя нет, не все. По умолчанию RC дает
доступ в папку [%WINNT%\] и ее потроха. И только. Надо все, что хотим заменить,скопировать туда. Вот теперь все.

А поставить RC можно командой (находясь в [i386] папке дистрибутива)

«winnt32.exe /cmdcons».

Инсталятор все сделает сам.

Оставить мнение

Check Also

Алмазный фонд «Хакера». Важные материалы по взлому за последние несколько лет

В прошлом выпуске мы сделали подборку по реверсингу и анализу malware-кода, которая в перв…