Давайте посмотрим на самые "вкусные" свойства объекта TService, которые находятся в диалоговом окне Object Inspector (рис. 3.3).

3.5.1. Свойства объекта TService

Рис. 3.3. Свойства объекта ТБегасе Рассмотрим назначение этих свойств:

в АПоукРаиве - позволяет пользователю приостанавливать работу сервиса. Я злой, поэтому в своем сервисе отключаю эту возможность (рис. 3.4). Незачем тормозить мои великие творения.

в АПоуйт-ор - позволяет пользователю останавливать работу сервиса. И снова моя злость заставляет убрать эту возможность.

3.5.1. Свойства объекта TService

Рис. 3.4. Свойства моего сервиса, в котором запрещена возможность остановки и паузы

• Di spl ayName - отображаемое имя. Именно этот текст можно будет увидеть в оснастке сервисов в имени. Я указал Сервис на Delphi, но в настоящем шуточном проекте я бы посоветовал подойти к выбору имени более тщательно. Как корабль назовешь, так он и потонет.... Например, можно написать здесь Служба безопасности NTFS, тогда ни у кого не поднимется рука остановить такое. Лучше использовать английский язык, чтобы совсем испугать бедного и несчастного пользователя. Но и исполняемый файл в этом случае должен будет иметь соответствующее имя, а не просто Projectl.exe.

• ErrorSeverity - служит для принятия мер в случае возникновения ошибки во время запуска. Здесь можно указать одно из следующих значений:

О eslgnore - продолжить выполнение;
О esNormal - вывести сообщение, но продолжить работу;

О esSevere - продолжить работу, если стартует конфигурация, которая уже стартовала удачно, или запустить конфигурацию, которая стартовала удачно.

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

В любом случае в системном журнале прописывается запись о происшедшей ошибке, на экране нам отображать ничего не надо. Не стоит пользователя смущать лишними сообщениями, иначе из-за какой-то маленькой ошибки начнутся "раскопки", что это за сервис выдал ошибку и зачем. Поэтому измените свойство ErrorSeverity на eslgnore. Системные журналы проверяют редко, а вот сообщение на экране упустить из виду просто нереально.

• ServiceStartName и Password - это имя учетной записи и пароль, под которыми будет работать сервис. От них зависят права на доступ к различным объектам. Если вы заведомо знаете пароль администратора машины "жертвы", то можете указать его здесь, в противном случае оставьте эти параметры пустыми, чтобы сервис работал под системной учетной записью.

• Dependencies - зависимости. Если дважды щелкнуть по этому свойству, то появится диалоговое окно, в котором можно указать сервисы, от которых будет зависеть ваш собственный сервис. Это значит, что все они должны будут запуститься раньше.

• ServiceType - тип сервиса. Существует следующие три типа сервисов: О stWin32 - стандартный оконный сервис - то, что нам и нужно;

О stDevi се - применяется для драйверов устройств; О stFi 1 eSystem - драйвер файловой системы.

• StartType - тип запуска сервиса по умолчанию. Здесь можно указать одно из следующих значений:

О stBoot - используется оконный загрузчик, когда тип сервиса не stWin32; О stSystem - стартовать после инициализации системы;
О stAuto - запускаться автоматически во время загрузки системы. Для "злого" сервиса это идеальный вариант;
О stManual - ручной запуск сервиса;

О stDi sabl ed - отключено.

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

3.5. Сервисы || Оглавление || 3.5.2. События объекта TService


Delphi в шутку и всерьез: что умеют хакеры



Новости за месяц

  • Январь
    2022
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс