Изменение привелегий процесса, работа с SID

Тема в разделе "WASM.RESEARCH", создана пользователем yalex, 1 окт 2005.

  1. yalex

    yalex New Member

    Публикаций:
    0
    Регистрация:
    1 июн 2004
    Сообщения:
    13
    Задача: Изменить SID процесса на новое значение. В этой структуре хранится группа пользователя, который запустил процесс. Хоть это не документированная структура, но я её облазил вдоль и поперёк. Вот её структура:



    typedef struct _SID_IDENTIFIER_AUTHORITY {

    UCHAR Value[6];

    } SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;



    typedef struct _SID {

    UCHAR Revision;

    UCHAR SubAuthorityCount;

    SID_IDENTIFIER_AUTHORITY IdentifierAuthority;

    ULONG SubAuthority[1];

    } SID, *PREAL_SID; //(Сделал так для удобства)



    Получить информацию SID можно:

    ZwQueryInformationToken(hToken, TokenUser, buffer, sizeof(buffer), &tokenInfoLength);



    Buffer будет содержать инфармацию скопированную ZwQueryInformationToken с настоящего SID процесса. Устанавливать его недьзя.



    Вопрос, как к нему добраться, чтоб изменить. ZwQueryInformationToken не специальная функция и в ntoskrnl много ещё чего делает и повторить это трудно. Может кто помежет найти способ получать не копию SID, а его самого для изменения(адресс).