
- •Операционные системы и их интерфейсы.
- •Графические ос
- •Речевые ос
- •Динамически подключаемые библиотеки.
- •Потоки и процессы.
- •Локальная память потока
- •Потоки в Windows.
- •Сервисы в Windows
- •7. Процессы в виндовс
- •8.Работа с сервисами виндовс
- •Синхронизация.
- •Система информационной безопасности
- •Синхронизация потоков в Windows
- •Управление безопасностью в Windows
- •3. Управляемый доступ к сети
- •13. Взаимоисключающий доступ к переменным
- •Управление пользователями
- •Управление группами
- •Структура консольного приложения
- •Работа с идентификаторами безопасности
- •19, Работа с консолью
- •20. Работа с дескрипторами безопасности
- •21. Работа с окном консоли
- •Часть III. Программирование консольных приложений
- •22. Работа со списками управления доступом на высоком уровне
- •23. Работа с буфером экрана
- •24. Работа с привилегиями
- •Ввод-вывод на консоль
- •Работа с маркерами доступа
- •Первичный маркер доступа
- •Имперсонализирующие маркер доступа
- •Передача данных
- •Работа со списками управления доступом на низком уровне
- •Работа с анонимными каналами в Windows
- •Управление безопасностью объектов на низком уровне
- •Глава 45. Управление безопасностью объектов на низком уровне 993
- •31) Работа с именованными каналами в Windows
- •32) Win32 и Win64. Программирование в среде Win64.
- •33) Работа с почтовыми ящиками в Windows
- •34) Использование файловой системы и функций символьного ввода/вывода Windows
- •35) Фреймовая обработка исключений
- •36) Усовершенствованные средства для работы с файлами и каталогами и знакомство с реестром
- •37. Финальная обработка исключений
- •38. Обработка исключений
- •39. Виртуальная память
- •40 . Управление памятью, отображение файлов и библиотеки dll
- •41. Работа с виртуальной памятью в windows
- •42.Управление процессами
- •43. Работа с кучей в Windows
- •44. Потоки и планирование выполнения
- •45. Общие концепции управления файлами
- •46. Синхронизация потоков
- •47. Работа с файлами в Windows
- •48. Влияние синхронизации на производительность и рекомендации по ее повышению
- •49) Работа с каталогами (папками) в Windows
- •50) Усовершенствованные методы синхронизации потоков
- •51) Асинхронный вызов процедур
- •52) Взаимодействие между процессами
- •53) Асинхронный доступ к данным.
- •54) Сетевое программирование с помощью сокетов Windows
- •55)Порты завершения
- •57)Работа с ожидающим таймером
- •58)Асинхронный ввод/вывод и порты завершения
- •Порты завершения ввода-вывода
- •59)Отображение файлов в память.
- •Достоинства метода. Альтернативой отображению может служить прямое чтение файла или запись в файл. Такой способ работы менее удобен по следующим причинам:
- •60)Безопасность объектов Windows
- •Операционные системы и их интерфейсы.
Управление безопасностью объектов на низком уровне
Некоторые функции, используемые для управления безопасностью объектов конкретного типа:
Доступ к информации о владельце объекта
Для установки в дескриптор безопасности объекта сведений о владельце объекта ИСПОЛЬЗуетСЯ функция SetSecurityDescriptorOwner, которая имеет следующий прототип:
BOOL SetSecurityDescriptorOwner(
PSECURITY_DESCRIPTOR pSecurityDescriptor, // SD объекта
PSID pOwner, // SID нового владельца объекта
BOOL bOwnerDefaulted // признак владельца объекта по умолчанию
);
В случае успешного завершения функция вернет ненулевое значение, а в случае неудачи — false. Код ошибки в случае неудачного выполнения функции МОЖНО ПОЛУЧИТЬ Посредством ВЫЗОВа фунКЦИИ GetLastError.
Доступ к информации о первичной группе владельца объекта
Для установки в дескриптор безопасности объекта сведений о первичной группе владельца Объекта ИСПОЛЬЗуетсЯ фунКЦИЯ SetsecurityDescriptorGroup, которая имеет следующий прототип:
BOOL SetsecurityDescriptorGroup(
PSECURITY_DESCRIPTOR pSecurityDescriptor, // на SD объекта
Глава 45. Управление безопасностью объектов на низком уровне 993
PSID pGroup, // указатель на SID первичной группы
BOOL bGroupDefaulted // признак группы по умолчанию
);
В случае успешного завершения функция вернет ненулевое значение, а в случае неудачи — false. Код ошибки в случае неудачного выполнения функции МОЖНО ПОЛУЧИТЬ ПОСреДСТВОМ ВЫЗОВа фуНКЦИИ GetLastError.
Доступ к списку DACL
Для установки в дескриптор безопасности объекта списка управления доступом DACL ИСПОЛЬЗуеТСЯ фуНКЦИЯ SetSecurityDescriptorDacl, КОТОрая имеет следующий прототип:
BOOL SetSecurityDescriptorDacl(
PSECURITY_DESCRIPTOR pSecurityDescriptor, // SD объекта
BOOL bDaclPresent, // признак присутствия DACL
PACL pDaci, // указатель на список DACL
BOOL bDaciDefauited // признак DACL, заданного по умолчанию
);
В случае успешного завершения функция вернет ненулевое значение, а в случае неудачи — false. Код ошибки в случае неудачного выполнения функции МОЖНО ПОЛУЧИТЬ ПОСреДСТВОМ ВЫЗОВа фуНКЦИИ GetLastError.
Доступ к списку SACL
Для установки в дескриптор безопасности объекта списка управления доступом SACL ИСПОЛЬЗуеТСЯ фуНКЦИЯ SetSecurityDescriptorSacl, которая имеет следующий прототип:
BOOL SetSecurityDescriptorSacl(
PSECURITY_DESCRIPTOR pSecurityDescriptor, // SD объекта
BOOL bSaciPresent, // признак присутствия SACL
PACL pSacl, // указатель на список SACL
BOOL bSaciDefauited // признак SACL, заданного по умолчанию
);
В случае успешного завершения функция вернет ненулевое значение, а в случае неудачи — false. Код ошибки в случае неудачного выполнения функции МОЖНО ПОЛУЧИТЬ ПОСреДСТВОМ ВЫЗОВа фуНКЦИИ GetLastError.
Защита файлов и каталогов
Для изменения атрибутов безопасности файла или каталога используется функция setFiieSecurity, которая имеет следующий прототип:
BOOL SetFiieSecurity(
LPCSTR lpFileName, // имя файла
SECURITY_INFORMATION Security In format ion, // управляющие флаги
PSECURITY_DESCRIPTOR pSecurityDescriptor // указатель на SD
);
Отметим, что если функция изменяет атрибуты безопасности каталога, то эти изменения не распространяются на дочерние объекты каталога. В случае успешного завершения функция вернет ненулевое значение, а в случае неудачи — false. Код ошибки в случае неудачного выполнения функции МОЖНО ПОЛУЧИТЬ ПОСреДСТВОМ ВЫЗОВа фуНКЦИИ GetLastError.