Привет, посоветуйте плиз, Мне нужно дать доступ к окну из процесса с medium integrity level процессу c low integrity level, есть мысль создавать окно в потоке с low integrity level, будет ли это работать? чем можно вообще посмотреть integrity level потока? process explorer показывает только для процессов. а то я даже потестить не могу: ничего не работает из-за того, что с потоком ничего не получилось или левый баг какой =) Сенкс.
Velheart Integrity Level определяется группой в токене (атрибуты SE_GROUP_INTEGRITY и SE_GROUP_INTEGRITY_ENABLED; сид определяет уровень целостности). UIPI же (User Interface Privilege Isolation) фасилицируется на уровне процесса. Структура win32k!tagPROCESSINFO (создаваемая для графических процессов) содержит dword с численным значением целостности. Наследуется ли это значение из токена процесса, или потока, или же из процессного sacl (SYSTEM_MANDATORY_LABEL_ACE_TYPE) – нам неизвестно. Возможно, ты захочешь воспользовать функцию ChangeWindowMessageFilterEx().
Она бы была самое то, что нужно, если бы была на Висте. Ее, кстати и на моей x64-семерке нет.. Может есть нативный аналог на Висте? Хотя наверно наверно нет -- вызов из user32 сразу в ядро ведет.. Вероятно придется все-таки переделывать архитектуру на однонаправленные мессаджи medium --> low
Velheart В висте есть ChangeWindowMessageFilter (без "Ex"). >Ее, кстати и на моей x64-семерке нет.. Версия, собранная на заказ? Код (Text): C:\Users\Mal>ver Microsoft Windows [Version 6.1.7600] // x64 C:\Users\Mal>exports \sys\user32.dll | findstr -i "messagefilter" 1543 29 000120A0 ChangeWindowMessageFilter = ChangeWindowMessageFilter 1544 2A 00016FA0 ChangeWindowMessageFilterEx = ZwUserChangeWindowMessageFilterEx
Sol_Ksacap Ага, это я нашел, тока мне нужно было бы WM_COPYDATA пропускать, а для всей системы это не оч хорошо, учитывая, что нужно это просто для реализации хитрого функционала совершенно легального IE-плагина =) Ага, это я облажался, просто ида в окне функций не показывает ее, а показывает NtUserChangeWindowMessageFilterEx =)