|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
|
Программная настройка DCOM20.07.2015, 17:33. Показов 6497. Ответов 39
Метки нет (Все метки)
Нужно программно настроить DCOM.Меняю в реестре (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\O le) настройки настройки в REG_SZ,всё работает ,что делать с бинарными файлами,такими как: DefaultAccessAermissions,DefaultLaunchAe rmissions,итд.,не могу найти. В них,как я понимаю,и задаются права доступа. Поменял в самом dcomcnfg.exe вижу в реестре изменения ,но закономерности не вижу.На других форумах подобные темы поднимались но ответа там не нашёл.Буду благодарен за любую информацию как это обработать на с++.
0
|
|
| 20.07.2015, 17:33 | |
|
Ответы с готовыми решениями:
39
Asp.net+iis+dcom=ошибка при вызове функций DCOM сервера DCOM-клиент в виде сервиса не соединяется с DCOM-сервером!? Программная настройка BDLookupComboBox |
|
Ушел с форума
|
|
| 20.07.2015, 19:10 | |
|
Прежде всего расскажите, какие именно настройки вы хотите изменить.
Обычно в LaunchPermissions и AccessPermissions прописываются параметры безопасности для запуска и подключения к COM-серверу. И да, их вполне можно менять программно, хоть это и не документировано.
0
|
|
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
|
| 20.07.2015, 19:19 [ТС] | |
|
Убежденный, dcomcnfg->Службы компонентов->Компьютеры->Мой компьютер->Свойства->Безопасность COM
Вот эти.
0
|
|
|
Ушел с форума
|
|||||||||||
| 20.07.2015, 19:41 | |||||||||||
|
Я делал следующим образом: сначала создавал дескриптор безопасности и добавлял
туда разрешения для нужных пользователей и групп, а затем сохранял этот дескриптор как REG_BINARY в ключ реестра HKLM\SOFTWARE\Classes\AppId\<AppId-GUID-компонента>, в значения LaunchPermission и AccessPermission. Разумеется, если разрешения для LaunchPermission и AccessPermission различаются, потребуется два security- дескриптора. В разделе CLSID COM-компонента обязательно должна быть ссылка на его AppId, иначе разрешения действовать не будут. Это эквивалентно ручной настройке разрешений доступа через dcomcnfg.exe, проверял на XP-Win7, 32- и 64-битных. В ObjBase.h для соответствующих разрешений определены такие константы:
Получается примерно такая табличка для флагов доступа:
Можно использовать BuildSecurityDescriptor, заполнив вручную структуры EXPLICIT_ACCESS и TRUSTEE, а можно описать разрешения на языке SDDL и позвать ConvertStringSecurityDescriptorToSecurit yDescriptor. В обоих случаях результат будет идентичным - вы получите self-relative SD, который можно сериализовать в реестр.
2
|
|||||||||||
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
||||||
| 20.07.2015, 22:42 [ТС] | ||||||
|
Убежденный, Никогда бы сам не наткнулся на такую реализацию
.На msdn взял пример.https://msdn.microsoft.com/en-... s.85).aspx и тут почитал http://rubooks.org/book.php?bo... =149(глава 15) у меня тут вопрос возник,по этой записи
?
0
|
||||||
|
Ушел с форума
|
|
| 20.07.2015, 23:10 | |
|
SECURITY_ATTRIBUTES задается при создании объекта.
В этой структуре указывается дескриптор безопасности, а также то, сможет ли хэндл объекта наследоваться в дочерние процессы. В данном случае дескриптор безопасности устанавливается для ключа реестра (если он создается, а не открывается).
1
|
|
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
|
| 20.07.2015, 23:33 [ТС] | |
|
Убежденный, Можете ещё подсказать?
![]() ea[0].Trustee.ptstrName = (LPTSTR) pEveryoneSID; откуда мы берём pEveryoneSID,это стандартное значение? тут просто не нашёл такого :https://msdn.microsoft.com/en-... s.85).aspx И не могу понять ,куда прописываются COM_RIGHTS_EXECUTE,это какие-то поля EXPLICIT_ACCESS или TRUSTEE ?
0
|
|
|
Ушел с форума
|
||||||||||||
| 20.07.2015, 23:48 | ||||||||||||
|
pEveryoneSID - это, по всей вероятности, SID группы "Все" (Everyone).
Предопределенные SID-ы есть здесь: Well-known security identifiers in Windows operating systems https://support.microsoft.com/en-us/kb/243330 наследования, а в TRUSTEE перечисляются субъекты безопасности (т.е. пользователи, группы и т.п.), для которых эти разрешения нужно применить. Лично я предпочитаю не связываться с "голыми" EXPLICIT_ACCESS/TRUSTEE/ACL/etc, а сразу выразить свои намерения через SDDL-строку, сконвертить ее в дескриптор безопасности (ConvertStringSecurityDescriptorToSecuri tyDescriptor) и уже дальше что-то делать. Например, вот как выглядит SDDL-строка для папки, устанавливающая полный доступ для всех с наследованием в дочерние объекты и задающая владельцем администраторов:
O - Owner, т.е. владелец, в данном случае это BA, т.е. Builtin Administrators. G - Group, первичная группа параметры те же. Далее идет D, т.е. DACL, список контроля доступа, причем P = Protected, т.е. защищенный от наследования от объектов верхнего уровня. Далее, в скобках: A - Access Allowed, т.е. тип доступа - разрешающий, CIOI - это Container Inherit + Object Inherit, означает, что дочерние контейнерные (C) и неконтейнерные (O) объекты будут наследовать данные разрешения. Потом идет GA, то есть, GENERIC_ALL, полная маска доступа, ну и WD - это группа "World", т.е. "Все" (она же "Everyone"). Про SDDL-синтаксис подробнее можно почитать здесь: Security Descriptor Definition Language https://msdn.microsoft.com/en-... 85%29.aspx Кстати, вместо "GA", "GR" и т.п. можно указывать "сырые" флаги доступа в шестнадцатеричном виде. Пример SDDL для процесса:
1
|
||||||||||||
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
|
| 21.07.2015, 00:10 [ТС] | |
|
Да,есть над чем поразмыслить,пойду обрабатывать
Спасибо Вам.
0
|
|
|
Ушел с форума
|
|
| 21.07.2015, 08:11 | |
|
Я рекомендую заглянуть в соответствующую главу книги "Системное
программирование в Windows" А. Побегайло, там это вещи с безопасностью хорошо описаны. Ну и в MSDN тоже, само собой. Больше нигде толкового описания не встречал.
1
|
|
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
||||||
| 21.07.2015, 22:34 [ТС] | ||||||
|
Убежденный,я записал а реестр ,но что-то не могу найти где ошибся.В настройках безопасности 3 группы сразу создаётся,причём разные для LaunchPermissions и AccessPermissions.
0
|
||||||
|
Ушел с форума
|
|
| 21.07.2015, 22:50 | |
|
Вы не то пишете в реестр.
Писать надо не SECURITY_ATTRIBUTES, а сам SECURITY_DESCRIPTOR. И REG_OPTION_VOLATILE уберите, из-за нее ключ исчезнет при следующей же загрузке компа.
1
|
|
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
||||||
| 21.07.2015, 22:56 [ТС] | ||||||
|
Убежденный, Так я понимаю?Просто у меня щас настройки создаются,но групп там нет.
0
|
||||||
|
Ушел с форума
|
|
| 22.07.2015, 08:23 | |
|
Уже лучше.
Только не "sizeof(sa.lpSecurityDescriptor)", что бессмысленно, т.к. sizeof любого указателя будет всегда равен "sizeof (void *)" (4 на x86 и 8 на x64), а здесь нужна длина security-дескриптора. Получить можно функцией GetSecurityDescriptorLength. -------- И это еще не все. InitializeSecurityDescriptor создает дескриптор в так называемом absolute-формате, он еще не пригоден для сохранения в реестре, сначала нужно сконвертировать его в self-relative-формат и только после этого сохранять. Сделать это можно функцией MakeSelfRelativeSD. Absolute and Self-Relative Security Descriptors https://msdn.microsoft.com/en-... 85%29.aspx
1
|
|
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
||||||
| 22.07.2015, 20:55 [ТС] | ||||||
|
Убежденный, Нужно ли инициализировать дескриптор ,в который выходные данные записываются?Я пробовал но это не помогло ,обращаюсь к запрещёной памяти.Выдаёт EAcccessViolation.Начинаю заниматься "вангованием"
![]()
0
|
||||||
|
Ушел с форума
|
|
| 22.07.2015, 21:16 | |
Сообщение было отмечено zorro117 как решение
Решение
Ух, как все запущено !
![]() MakeSelfRelativeSD: первым аргументом передается указатель на существующий SD, вторым - указатель на буфер достаточного размера, чтобы вместить в себя другой SD, и третим - указатель на переменную DWORD, которая хранит размер этого буфера и в которую на выходе будет записан итоговый размер SD. Здесь второй параметр NULL, а в третьем вообще какая-то ерунда (GetSecurityDescriptorLength, приведенный к указателю). Какого результата вы ждете ?
1
|
|
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
|
| 23.07.2015, 19:22 [ТС] | |
|
Убежденный, Исправил,заработало!
Спасибо!Каждый ответ исчерпывающий,не сразу просто врубился.
0
|
|
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
|
| 25.07.2015, 18:28 [ТС] | |
|
Убежденный, а вы не подскажете где находится полный список групп ,пользователей, встроенных субъектов безопасности итд.Хочу считать.
http://windata.ru/uploads/2011/06/win043_thumb.png
0
|
|
|
Ушел с форума
|
|
| 25.07.2015, 18:47 | |
|
Так я уже приводил ссылку выше:
Well-known security identifiers in Windows operating systems https://support.microsoft.com/en-us/kb/243330 Здесь перечислены все встроенные идентификаторы безопасности. Только этот список не постоянный, с выходом каждой новой версии Windows он может пополняться новыми элементами. Например, в Windows Vista появились SID-ы для integrity levels, в Windows 8 есть SID-ы для AppContainer ("песочницы" modern-приложений) и т.п.
1
|
|
|
1 / 1 / 1
Регистрация: 12.07.2015
Сообщений: 62
|
|
| 25.07.2015, 19:00 [ТС] | |
|
Убежденный, про эту ссылку помню,просто может где-то в реестре можно считать,что бы на конкретной машине вывести полный список.
0
|
|
| 25.07.2015, 19:00 | |
|
Помогаю со студенческими работами здесь
20
Программная настройка ADOConnection Программная настройка MasterSource и MasterFields Программная настройка чувствительности микрофона Программная настройка начальной страницы Программная настройка роутера TP-Link Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|