Change thread integrity level

Тема в разделе "WASM.WIN32", создана пользователем Velheart, 21 май 2010.

  1. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Привет, посоветуйте плиз, Мне нужно дать доступ к окну из процесса с medium integrity level процессу c low integrity level, есть мысль создавать окно в потоке с low integrity level, будет ли это работать? чем можно вообще посмотреть integrity level потока? process explorer показывает только для процессов. а то я даже потестить не могу: ничего не работает из-за того, что с потоком ничего не получилось или левый баг какой =) Сенкс.
     
  2. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Блин, нельзя так =(
     
  3. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    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().
     
  4. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Она бы была самое то, что нужно, если бы была на Висте. Ее, кстати и на моей x64-семерке нет.. Может есть нативный аналог на Висте? Хотя наверно наверно нет -- вызов из user32 сразу в ядро ведет.. Вероятно придется все-таки переделывать архитектуру на однонаправленные мессаджи medium --> low
     
  5. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Velheart
    В висте есть ChangeWindowMessageFilter (без "Ex").

    >Ее, кстати и на моей x64-семерке нет..
    Версия, собранная на заказ? :)
    Код (Text):
    1. C:\Users\Mal>ver
    2.  
    3. Microsoft Windows [Version 6.1.7600] // x64
    4.  
    5. C:\Users\Mal>exports \sys\user32.dll | findstr -i "messagefilter"
    6.        1543   29 000120A0 ChangeWindowMessageFilter = ChangeWindowMessageFilter
    7.        1544   2A 00016FA0 ChangeWindowMessageFilterEx = ZwUserChangeWindowMessageFilterEx
     
  6. Velheart

    Velheart New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2008
    Сообщения:
    526
    Sol_Ksacap
    Ага, это я нашел, тока мне нужно было бы WM_COPYDATA пропускать, а для всей системы это не оч хорошо, учитывая, что нужно это просто для реализации хитрого функционала совершенно легального IE-плагина =)

    Ага, это я облажался, просто ида в окне функций не показывает ее, а показывает NtUserChangeWindowMessageFilterEx =)