DotFix :: Портал разработки и защиты программ
Главная
Программы
Статьи
Разное
Форум
Контакты
Автор: GPcH. Дата публикации: 23.08.2004

Пишем сервис на Delphi

[Вступление]

Неплохо бы разобраться, что такое вообще сервис. Данный термин появился в NT системах и широкое
распространение получил с выходом операционных систем Win2k и XP.
Бесспорно преимущества сервисов над обычными программами ощутимы. Это и загрузка до загрузки
обычных программ и большие привилегии и больший контроль над системой. Но главное -
их нельзя выгрузить через Ctrl + Alt + Del, что позволяет создавать антивирусные мониторы
и серверы баз данных именно в качестве сервисов. На то есть ряд причин. Во первых сервисы
выполняются как бы незаметно для системы и пользователя, во вторых их блокировка возможна
лишь через апплет администрирования панели управления, что не дает вредоносным программам
выгружать эти сервисы средствами API функции. К примеру FireWall, работающий в качестве
сервиса выгрузить из памяти практически невозможно, что оставляет меньше шансов вирусописателям на блокировку сетевых защит.

Зачем данные возможности могут пригодиться нам? Думаю, если Вы решили заняться написанием крупного проекта, то наверное уже придумали применение сервисам в своем проекте, но как использовать сервисы простым пользователям, да еще и с пользой? На этот вопрос я и постараюсь ответить.

[Цель]

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

[Приступаем]

Писать сервис мы будем на Delphi. Почему? Да потому, что там уже есть все заготовки под создание сервисов в отличии от Visual Studio 6.0. Про .NET я пока не говорю, так как мало кто имеет на своем компьютере библиотеки для запуска .NET приложений, а тащить за прогой 20 Mb библиотек - дело неблагодарное.
С чего же нам начать? Да как обычно: "File" -> "New". Теперь самое интересное. В появившемся
списке шаблонов следует выбрать "Service Application" и лицезреть заготовку для нашего будущего сервиса.
Первым делом советую обратить внимание на свойства класса TService. Мы имеем возможность изменить следующий спектр параметров:

AllowPause - разрешить или запретить приостанавливать сервис.

Настоятельно рекомендую установить значение в False, чтобы пользователи не смогли приостанавливать работу сервиса через панель администрирования.

AllowStop - также рекомендую установить в False,

так как останавливать сервис пользователям лучше не давать - это чревато тем, что нашу шутку быстро остановят.

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

Вот собственно и все основные параметры. Главное не забудьте установить имя сервиса в что-нибудь типа "Antivirus Monitor", чтобы пользователь ни за что не догадался о надобности данного сервиса.

[Программирование]

Теперь разберемся с тем, какие компоненты мы имеем? А имеем мы не многое. Визуального ничего нам использовать нельзя по определению, так что будем использовать только события сервиса. Больше всего нас интересует событие OnStart, так как оно производится после загрузки сервиса. В него пропишем следующее:

CODE NOW!

procedure TService1.OnStart(Sender: TService; var Started: Boolean);
var
retval : int;
begin
retval := ShowMessage (’Операционная система ... установила, что Вы используете
незарегистрированную копию системы, что противоречит лицензионному
соглашению. Просим немедленно удалить операционную систему
и ее дистрибутивы со всех носителей информации во избежании
проблем с уголовным кодексом’);
end;



Внушает? Думаю что шутка не у каждого вызовет смех ;) Вроде все. Компилируем.

[Проверим работу сервиса]

Проверять мы будем на машине друга-ламера (рекомендуется), так как такие друзья думаю есть у всех. Тут не все так просто. В автозагрузку сервис помещать нельзя, его необходимо инсталлировать специальным образом. Но, к нашей радости все не так сложно, достаточно запустить созданный нами сервис с ключом "/INSTALL" без кавычек. Удалить сервис через панель управления будет невозможно, так как все кнопки мы заблокировали. Но способ удаления все же есть и упомянуть о нем думаю будет нелишним. Для этого достаточно запустить EXE файл сервиса с другим ключом - "/UNINSTALL" также без кавычек.

[Заключение]

Дам Вам пару советов:
1. никогда не говорите друзьям-ламерам способ удаления сервиса
2. не используйте данные шутки на настоящих друзьях, так как это может подорвать дружественные отношения.

Вроде все, удачи

Комментарии
Добавил: Admin Дата: 03.09.2004

Жду комментарии

Добавил: FEUERRADER Дата: 04.09.2004

Прикольная статья. Я никогда сервисы не создавал на делфе. надо поробовать


Добавление комментария

Ваше имя (на форуме):

Ваш пароль (на форуме):

Комментарии могут добавлять только пользователи,
зарегистрированные на форуме данного сайта. Если Вы не
зарегистрированы, то сначала зарегистрируйтесь тут

Комментарий:



04.09.2011 Долгожданный релиз VB Decompiler. Масса улучшений декомпиляции Native Code. Значительно расширенна и обновлена справочная система на русском и английском языках.
20.12.2010 DotFix Software поздравляет наших клиентов и посетителей сайта с наступающим Новым Годом и рождеством! Желаем приятно провести праздники и успехов в новом году!
28.11.2010 Выпущена новая версия защиты DotFix NiceProtect. Основные изменения коснулись обфускатора Delphi программ. Теперь имеется полная поддержка Tab и Page контролов на формах, что обеспечивает максимальную совместимость обфускации с Delphi XE программами.
21.10.2010 Обновлен декомпилятор Visual Basic программ до версии 8.1. Декомпиляция P-Code программ становится все более идеальной, также проделана большая работа по улучшению анализа Native Code и .NET приложений.
16.09.2009 Полностью обновлен движок сайта! Теперь все ссылки имеют читаемый понятный вид, разного рода глюки на страницах убраны. И теперь сайт полноценно работает на второй версии нашего движка.
Архив новостей
Яндекс цитирования

Движок сайта: DotFix Engine v0.2
Администрация сайта:
запчасти для иномарок . Ищете весы: промышленные весы.