|
|
|
Перетаскивание файлов на форму, где уровень целостности - HIGH20.09.2015, 14:10. Показов 2006. Ответов 6
Метки нет (Все метки)
Привет!
Подскажите, пожалуйста, как грамотно спроектировать приложение. Оно запускается с повышенными привилегиями (манифест), уровень целостности - Высокий. Такие права нужны его функционалу. Но перетаскивание файлов на форму не работает, т.к. у Explorer-а IL - Medium. Я предположил, что можно сделать такую схему: запустить 2 процесса (основной с IL High, который запустит второй с IL - Medium, а 1-й скроет свою форму) и они между собой будут общаться... только с помощью чего? SendMessage ведь тоже не будет работать... через канал сделать? P.S. Вместо нового процесса не предлагать поток. (так уж вышло по религиозным причинам, здесь мне нужно обойтись без него, но с академическим интересом буду рад услышать любые предложения). Спасибо.
0
|
|
| 20.09.2015, 14:10 | |
|
Ответы с готовыми решениями:
6
Перетаскивание на форму несколько файлов и работа через ListBox1 Проверка целостности файлов (хэш) |
|
Ушел с форума
|
|
| 20.09.2015, 17:40 | |
|
См. функции ChangeWindowMessageFilterEx (Win7+) и ChangeWindowMessageFilter (Vista+):
ChangeWindowMessageFilterEx function https://msdn.microsoft.com/en-... s.85).aspx ChangeWindowMessageFilter function https://msdn.microsoft.com/en-... s.85).aspx Они позволяют явно разрешить прием оконных сообщений от процессов, которые запущены на более низком Integrity Level. Разумеется, тут нужно действовать очень продуманно, чтобы не создать дыру в безопасности, через которую low-процесс станет high (shatter attack).
1
|
|
|
|
|||||||
| 17.01.2016, 03:38 [ТС] | |||||||
|
Для механизма Drag & Drop, созданного на базе COM-интерфейса, ChangeWindowMessageFilter функции бесполезны.
Как прокомментировали на stackoverflow:
Добавлено через 3 минуты Вообщем, придется отказываться от встроенного в моих формах COM и ловить WM_DROPFILES.
1
|
|||||||
|
|
|||||||
| 17.11.2016, 15:49 [ТС] | |||||||
|
Здравствуйте!
Кто-нибудь пробовал в деле Drag & Drop на окно с более высоким IL, используя uiAccess=true в манифесте? Пусть для теста возьмём этот проект: https://code.msdn.microsoft.co... C-f3008aad 1) Подключаю следующий манифест: Кликните здесь для просмотра всего текста
2) Подписываю EXE с помощью самовыданного сертификата. 3) Добавляю сертификат в корневое хранилище. 4) Компилирую EXE и копирую его в одно из доверенных расположений (как описано в MSDN):
Смотрю через Process Monitor вкладку Security. В ней: Integrity = S-1-16-8202 (вместо Medium или High). Судя по этой статье, этот SID как раз и означает, что мы получили нужный IL. Однако: 1) окно запрещает перетаскивание файлов из-под процесса с Medium IL, например рабочего стола. 2) не добились исходной цели, а именно: наш процесс должен был оказаться запущенным с полным токеном, а он у нас restricted. Это я проверял на Win10.0.14393 x64 А на win7x64 поведение немного другое, отличается вот чем: 1) если запустить из-под Program Files программу с level="highestAvailable" и uiAccess="true", то система запросит привилегии через окно UAC (в win10 - не запрашивала). 2) а если программу с level="asInvoker", то Process Monitor покажет, что у процесса IL = High, а не S-1-16-8202 (как у Win10), хотя токен все равно restricted. Как объяснить всё это и как добиться желаемого поведения от uiAccess для поддержки перетаскивания на окно процесса, имеющего полный токен?
0
|
|||||||
|
Ушел с форума
|
|||
| 17.11.2016, 17:02 | |||
|
Насколько я знаю, - могу ошибаться!, - uiaccess=true предназначен для того,
чтобы иметь возможность управлять вводом процессов, запущенных на более высоком IL. Например, процесс А, запущенный на medium IL, не может слать некоторые сообщения процесс Б, у которого IL=high. Но если А запустить с uiaccess=true, это препятствие будет преодолено. А у тебя, судя по всему, ситуация обратная: Б запускается с uiaccess=true, а затем процесс А пытается слать в Б сообщения. Но они не проходят, т.к. IL у Б уже как бы повышен с medium до high.
'limited token'.
1
|
|||
|
|
|
| 17.11.2016, 18:19 [ТС] | |
|
Возможно-возможно.
Вообщем, поменял я их местами, но это не сработало. Создал стандартный проект MFC. Так же само подписал. В итоге в Process Explorer IL = S-1-16-8202. В MFC нажал Файл, открыть. Из этого диалогового окна пробовал перетащить файлы на окно процесса, запущенного с повышенными привилегиями, но оно не смогло принять сообщения. Ладно, это был больше академический вопрос. Так что не суть важно.
0
|
|
| 17.11.2016, 18:19 | |
|
Помогаю со студенческими работами здесь
7
Проверка целостности системных файлов Нарушение целостности системный файлов windows Перетаскивание из Columns Editor на форму
Windows XP BSOD и неполадки с проверкой целостности файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|