![]() |
[Hello boot screen]
[Hello boot screen!]
[System] Windows XP (SP3,SP2) [Intro] Где-то видела статью - не статью, заметку-не заметку про то, что при старте винды на экран можно вывести инфу с помощью функции VidDisplayStringXY из bootvid.dll. Мне стало интересно, каким образом можно вывести какое-либо изображение. Проникшись этим делом, я написала простенький дров, который как раз-таки выводит на экран при загрузке винды надпись хелло. Возможно, это дело будет кому-то интересно [Let's go] Путем недолгих поисков нашла функцию VidSolidColorFill Код:
VOIDОна закрашивает прямоугольную область (x1,y1) - координата левого верхнего угла, (x2,y2) - координата правого нижнего угла. color - цвет. Вообще прямоугольники вещь великая. Нарисуем прямоугольниками HELLO. Итак, теперь откомментированный код функции... Она показывает надпись hello и 5 раз меняет цвет фона и надписи. Задержка функцией KeDelayExecutionThread... Я подписала где начинается какая буква для читабельности. Две буквы L в одном цикле для сокращения размеров кода. Так же как три горизонтальные палочки у буквы E и две вертикальные у H. Код:
// Функция, выводящая надпись HELLO во время загрузки винды. Драйвер должен быть заинсталлен как boot!Код:
SayHello(60,40,9,7);в качестве аргументов кодес принимает начальные координаты x и y, цвет надписи и фона. Итак, что же получилось? а)до http://img141.imageshack.us/my.php?image=dopi1.jpg б)после http://img136.imageshack.us/my.php?image=hello1lv3.jpg и http://img136.imageshack.us/my.php?image=hello2of9.jpg [Compilation] Для самостоятельной компиляции драйвера вам конечно потребуется DDK и либа bootvid.lib, для тех кому ее лень искать - положила в архив с сорцами и бинарем по ссылке ниже. Повторяю - драйвер должен быть инсталлирован как BOOT, иначе толку не будет. Примечание: рекомендуется подобные извращения тестить на эмуляторе, а не на живой машине, что собственно я и делала. [Download] http://rapidshare.com/files/168641900/bootgraph.rar.html (c)november 0x0c0de 2008 |
Классная вещь.
Есть вопрос: инсталировать как BOOT - как можно сделать? |
Вот так ~
Код:
SC_HANDLE hSCM = OpenSCManager(0,0, SC_MANAGER_ALL_ACCESS);и еще забыла сказать - дров положите в \windows\system32\drivers\ и заинстальте |
осталось ядерный pbrush зарелизить ;)
|
Вижу юзал Windows XP game edition норм сборка, даже boot урезан :)
|
| Время: 16:19 |