Наверное многие видели такое, что нельзя завершить какой либо процесс. К примеру Outpost - стандартный такс менеджер и ProcessExplorerNT завершить не могут. Вот возник вопрос, как это можно реализовать в своей программе?
Легально sendmessage(wnd,WM_ENDSESSION,0,0); но он спросит - хотим остаться без защиты. Как вариант внедрить свой код , и выполнить там TerminateProcess.
Он перехватывает в SDT ZwOpenProcess. Как понять легальный метод? Хочешь через bat файл захватить мир?
В любом случае, нужно опускаться на уровень ниже. На wasm'е есть отличные статейки, в частоности, уважаемого MS-Rem'а
2 KEZ - вот именно это и нужно. То, что нужно перехватить эту фукнцию - это и ежу понятно. А вот как бы это сделать без ring0?
sorry for Offtop не пробовали назвать процесс именем сервиса? (winlogon) у меня вопрос... там что проверяется имя сервиса!???
ВОобще вопрос довольно стандартный, стандартный будет и ответ - хук ZwTerminateProcess. Хукать опен процесс лучше не надо, т.к. если будет открытый хендл до того, как хук установят - можно будет грохнуть. На васме обсуждений на эту тему было много. Читаем статьи и форум Закрыто ввиду пустого трепа людьми, не сведущими в теме