запрет доступа к потокам процесса

Тема в разделе "WASM.NT.KERNEL", создана пользователем RUStx88, 28 май 2011.

  1. RUStx88

    RUStx88 New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2010
    Сообщения:
    25
    всем привет)

    я написал драйвер, перехватывающий функцию ядра ZwOpenProcess
    в моей функции драйвер проверяет PID открываемого процесса и если PID - нужный мне, то возвращает STATUS_ACCESS_DENIED

    всё работает, Process Explorer не может открыть процесс и прочитать его данные, НО
    он может открыть список потоков этого процесса и убить эти потоки, а мне нужен живой и неубиваемый таким простым способом процесс

    например, Process Explorer не может убить потоки процесса антивиря Касперского

    так вот, меня интересует, как запретить доступ сторонним программам из юзер мода к потокам определенного процесса

    спасибо)
     
  2. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    ZwOpenThread?)
     
  3. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Перехват ядерной NtOpenThread() на 32-битных системах.
    Регистрация колбеков через ObRegisterCallbacks() на 64-битных Windows Vista SP1 и выше.
     
  4. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    Возможен косвенный доступ. Например через именованные обьекты: секции, порты и пр. Тоесть к примеру хэндлит тред запросы с LPC-порта, мы формируем инвалидный запрос или такой, при котором используется уязвимость в обработке запроса. Хорошо известный пример - проводник крэшился(и даже более того, выполнялся произвольный код) при доставкии особым образом свормированных оконных сообщений.
     
  5. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    gaeprust
    Только хотел написать ..
    RUStx88
    Так что хукать только описатели это не вариант, если надо решить проблему в корне, то тогда все апи для трэдов :)
     
  6. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    Да, RUStx88, Process Explorer берёт данные из юзермода и я убил Кеннеди.Вам уже давно сказали, что нужно хукать.
    gaeprust, тс, ведь, (я так думаю) имел в виду легальные возможности юзермода.
     
  7. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    litrovith
    А дебаг в полне лигальные ...
     
  8. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    shchetinin, ну и что дальше???
     
  9. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    litrovith
    Ну получим описатель потока:)
     
  10. litrovith

    litrovith Member

    Публикаций:
    0
    Регистрация:
    20 июн 2007
    Сообщения:
    509
    shchetinin, вы получите в лучшем случае дырку от бублика, отлаживайте лигально наздоровье))) !
     
  11. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    litrovith
    А при чем ZwOpenProcess к ObOpenObjectByPointer(Так хендлы на поток и процесс получают )?
     
  12. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    litrovith
    А процесс уже запущен ... это не учел .. .
     
  13. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    litrovith
    Что легальные это само собой понятно. Но в случае защиты этого не достаточно. Для её обхода будут использованы как раз не легальные методы.

    shchetinin
    Обычно регистрируют OpenProcedure:OB_OPEN_METHOD, так как это более универсальнее, чем контролировать несколько сервисов.
     
  14. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    На 64-битных системах работать не будет ибо PG.
     
  15. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    x64
    А отключить проблема чтоле(не знаю как на x64 с ObType колбеками). Эта защита специально введена, чтобы не портили модуля, дескрипторные таблицы и пр.
     
  16. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    В общем-то - да, т.к. на данный момент есть только один способ сделать это красиво и надёжно, но для его реализации нужна квалификация выше среднего.

    Они отслеживаются и подменить их нельзя, несмотря на то, что на сайте Microsoft об этом ничего не сказано.
     
  17. gaeprust

    gaeprust New Member

    Публикаций:
    0
    Регистрация:
    2 май 2011
    Сообщения:
    188
    x64
    Ой да ладно не смешите. Какая там квалификация, у вас мир сошёлся на патчах и прочей примитивной дряни. Технологии выше средних уровнем вы и сейчас понять не можите. Это не с пустого слова, я например сейчас пишу матчасть, где описаны технологии, до которых вам жить и жить. Читайте свои посты, есчо и матчасть не мешалобы..

    Сказано не сказано какая разница. Я могу всё ядро изменять как захочу. Что мешает изменить несколько сотен байт в нём не понятно. Если у вас проблемы с графами или есчо что, то незачем тут это говорить, тема не про то.

    Особо умных приглашаем в топик http://www.wasm.ru/forum/viewtopic.php?id=41380
    Обсудим вашу наивную аверскую беспомощность в данном вопросе.