Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

Функция OpenService.

Функция OpenService открывает существующий сервис.

 

SC_HANDLE OpenService(
   SC_HANDLE hSCManager,
   LPCTSTR lpServiceName,
   DWORD dwDesiredAccess
 );
 

Параметры

hSCManager
Дескриптор базы данных менеджера управления сервисами. Этот дескриптор можно получить при помощи функции OpenSCManager.
lpServiceName
Указатель на строку (заканчивающуюся нулевым символом), содержащую имя открываемого сервиса. Длина строки не должна превышать 256 символов.
dwDesiredAccess
Тип доступа к сервису. См. Безопасность сервисов и типы доступа.

Перед тем, как разрешить доступ к сервису, система проверяет права процесса, из которого пришёл запрос.

Возвращаемое значение

В случае успеха, функция возвращает дескриптор сервиса.

В случае ошибки, функция вернёт NULL. Для получения более подробной информации об ошибке, можно воспользоваться функцией GetLastError.

В следующей таблице приведены стандартные коды ошибок:

 

Значение Описание
ERROR_ACCESS_DENIED Дескриптор не емеет достаточных прав для доступа к сервису.
ERROR_INVALID_HANDLE Указан неправильный дескриптор.
ERROR_INVALID_NAME Указано неправильное имя сервиса.
ERROR_SERVICE_DOES_NOT_EXIST Указанный сервис не существует.


Замечания

Полученный дескриптор будет действовать только для того процесса, который вызвал OpenService. Закрыть дескриптор можно при помощи функции CloseServiceHandle.

Пример

См. Запуск сервиса.

Дополнительная информация

Windows NT/2000/XP: Присутствует начиная с Windows NT 3.1 и выше.
Unicode: Существует как Unicode, так и ANSI версия этой функции.
Заголовок: Объявлена в Winsvc.h; включена в Windows.h.
Библиотека: Advapi32.lib.



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS