OpenProcess failed

Тема в разделе "WASM.WIN32", создана пользователем simnet_, 20 дек 2009.

  1. simnet_

    simnet_ New Member

    Публикаций:
    0
    Регистрация:
    18 дек 2007
    Сообщения:
    109
    Здравствуйте
    Есть ли способ изменить привилегии запущенного процесса с целью получить handle с помощью OpenProcess, не открывая предварительно процесс OpenProcess?
    Некоторые процессы не позволяют "открыть" процесс даже для PROCESS_QUERY_INFORMATION, что необходимо для получения хендла токена, и дальнейшей модификации этого токена.
    Как-то неприятно, что я администратор на своей машине и мне не разрешают даже запросить информацию о процессе, запущенном на ней.
    Или единственный способ - драйвер? (если да, то не будет ли там подводных камней, из-за того, что я лезу в "работающий процесс"? Ведь в принципе просто изменить поле токена будет несложно, как мне кажется)
    Спасибо за ответ на глупые вопросы :)
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Установи себе привилегии отладчика - тогда сможешь открыть процесс. Но установить их тоже не всегда дают. Точную апи не подскажу - погугли "привилегии отладчика". Думаю, с десяток классических примеров найдешь.
     
  3. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    вопрос уже поднимался неоднократно.
    поиск хендла процесса в списке хендлов (ZwQuerySystemInformation), хендл со всеми правами будет принадлежать процессу csrss. после успешного нахождения не забудь скопировать хендл себе (ZwDuplicateObject)
     
  4. simnet_

    simnet_ New Member

    Публикаций:
    0
    Регистрация:
    18 дек 2007
    Сообщения:
    109
    MSoft
    RamMerLabs
    Спасибо
     
  5. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    вообще есть ещё вариант, но он не всегда валиден... открыть процесс с правами только на дублирование хендлов и скопировать (HANDLE)-1 (собственный хендл процесса)... то есть, если рассматривать висту и старше, процесс csrss.exe не удастся открыть на дублирование хендлов, тк он имеет уровень целостности выше пользовательского... но можно получить доступ к процессу на одном уровне целостности с приложением или на нижших уровнях описанным выше методом...