всем привет) я написал драйвер, перехватывающий функцию ядра ZwOpenProcess в моей функции драйвер проверяет PID открываемого процесса и если PID - нужный мне, то возвращает STATUS_ACCESS_DENIED всё работает, Process Explorer не может открыть процесс и прочитать его данные, НО он может открыть список потоков этого процесса и убить эти потоки, а мне нужен живой и неубиваемый таким простым способом процесс например, Process Explorer не может убить потоки процесса антивиря Касперского так вот, меня интересует, как запретить доступ сторонним программам из юзер мода к потокам определенного процесса спасибо)
Перехват ядерной NtOpenThread() на 32-битных системах. Регистрация колбеков через ObRegisterCallbacks() на 64-битных Windows Vista SP1 и выше.
Возможен косвенный доступ. Например через именованные обьекты: секции, порты и пр. Тоесть к примеру хэндлит тред запросы с LPC-порта, мы формируем инвалидный запрос или такой, при котором используется уязвимость в обработке запроса. Хорошо известный пример - проводник крэшился(и даже более того, выполнялся произвольный код) при доставкии особым образом свормированных оконных сообщений.
gaeprust Только хотел написать .. RUStx88 Так что хукать только описатели это не вариант, если надо решить проблему в корне, то тогда все апи для трэдов
Да, RUStx88, Process Explorer берёт данные из юзермода и я убил Кеннеди.Вам уже давно сказали, что нужно хукать. gaeprust, тс, ведь, (я так думаю) имел в виду легальные возможности юзермода.
litrovith Что легальные это само собой понятно. Но в случае защиты этого не достаточно. Для её обхода будут использованы как раз не легальные методы. shchetinin Обычно регистрируют OpenProcedure:OB_OPEN_METHOD, так как это более универсальнее, чем контролировать несколько сервисов.
x64 А отключить проблема чтоле(не знаю как на x64 с ObType колбеками). Эта защита специально введена, чтобы не портили модуля, дескрипторные таблицы и пр.
В общем-то - да, т.к. на данный момент есть только один способ сделать это красиво и надёжно, но для его реализации нужна квалификация выше среднего. Они отслеживаются и подменить их нельзя, несмотря на то, что на сайте Microsoft об этом ничего не сказано.
x64 Ой да ладно не смешите. Какая там квалификация, у вас мир сошёлся на патчах и прочей примитивной дряни. Технологии выше средних уровнем вы и сейчас понять не можите. Это не с пустого слова, я например сейчас пишу матчасть, где описаны технологии, до которых вам жить и жить. Читайте свои посты, есчо и матчасть не мешалобы.. Сказано не сказано какая разница. Я могу всё ядро изменять как захочу. Что мешает изменить несколько сотен байт в нём не понятно. Если у вас проблемы с графами или есчо что, то незачем тут это говорить, тема не про то. Особо умных приглашаем в топик http://www.wasm.ru/forum/viewtopic.php?id=41380 Обсудим вашу наивную аверскую беспомощность в данном вопросе.