Здравствуйте Возникла задача создать "неубиваемый" процесс (вернее, неубиваемый обычными средствами, вроде Task Manager'a), который выполняет некие админские задачи (фильтрация трафика - Parental Control). Нет возможности устанавливать драйвер. И не годятся вирусные методики. Естественно, на каждую хитрую .. существует соответствующий .. . Но, собственно, не от хакеров защита. Подскажите наиболее естественный и простой способ. Или что почитать на эту тему. Я новичек в низкоуровневом программировании под Windows. Спасибо
AlwaysAlone Самый простой и дебильный способ: установить хук на создание окна (SetWindowsHookEx), и при срабатывании хука перехватить функцию TerminateProcess, ну или NtTerminateProcess, и в обработчике проверять передеваемый PID.
qwe8013 У нас во всех инет кафе стоит нт не легальная, это пиратская сборка. Там для имперсонации пасс "Администратор" запилен хардкодом. Бесполезно лепить какуюто защиту от этого.
сделай прогу дллкой и дллку подгружай в explorer.exe притом вполне легально через ветки реестра, или нелегально в контекст других процессов
если от task manager'a, то тут может помочь банальная вещь - переименовать файл в winlogon.exe . Проверьте - диспетчер задач не может убить процесс с таким именем. Но это дурацкий и примитивный способ.
А возможно ли создать службу которую нельзя просто завершить? Что-то вроде системных служб (их из Task Manager'а не остановишь)? Если нужно отключить такой сервис, как это сделать?
qwe8013 правильно предложил перехватывать TerminateProcess. При запуске проги грузи длл, которая автоматом будет грузиться во все запускаемые процессы и перехватывай там Exit/TerminateProcess. Нет ничего проще.
Запусти два процесса в паре. Пусть мониторят друг друга и параллельно мониторят нужный процесс. Если убить хоть 1 из 3х - пусть вызывается бсод.
AlwaysAlone инжектите длл в csrss.exe и будет вам "не убиваемый" процесс. *ток вистаобразные не дают открыть этот процесс...беда)
ASMatic Csrss - вся ось виснет при саспенде этого процесса. Технически это останов ядерного RIT. Его можно пропустить.
klzlk потому и сказал что туда длл и самая надёга при не возможности работы в р0. ProcessExplorer & TaskManager ничего не смогут поделать...а мы то будем делать свои дела(ТС знает какие.)
ASMatic Элементарно обходится - находим RIT, нтсаспендпроцесс + нтресумтред(рит). Ввод будет работать. Могут быть левые проблемы, так как сервер за многие другие задачи отвечает, например обслуживает сервисные порты, но обойти тоже не составляет труда.
ASMatic Вообще-то ничего плохого не планировалось и не планируется делать. Приложение - фильтр трафика, который не пускает GET-запросы к взрослым сайтам. Процесс полностью юзермодный, никаких драйверов не используется. Установка также полностью легальная. А вот чтоб избавится от него, нужно заставить пользователя помучаться, при условии что он не знает пароль который использовался во время установки. Вот собственно и все. Я искал наиболее легальный и естественный способ это сделать, так, как это делают "неостанавливаемые" системные службы. Пользователь априори не хакер, но подразумевается что Process Explorer запустить сумеет. Это не dll библиотека, чтоб ее инжектировать в чужие процессы (да и не стал бы я это делать, разве что "легально в explorer", хотя это тоже на вирус смахивает). Я начинающий в windows, поэтому собственно и спрашиваю с какой стороны подойти. Хороший вариант - когда пользователь получает сообщение "Permission denied" при попытке завершить такую службу. А мне тут вагон с тележкой разнообразных вирусных методик понапредлагали CREATE_PROTECTED_PROCESS к сожалению не работает в Windows XP (но в Win 7, как я понял из описания, это как раз то что я искал?).
Indy, естественно что обойти вам не составит труда, но расчет как я понял на юзера = аманить в ядре никто не сможет( разве что патчи "спортсмены" выпустят) AlwaysAlone Process Explorer вещь которая "запустила руки" в ядро и понятия как CREATE_PROTECTED_PROCESS для этого уровня не существует. Но она не всемогуща, т.е. если расчет только на ProcessExplorer & TaskManager то для фильтрации трафика можно воспользоватся LSP - зарегистрировали длл в системе = всякий процесс юзающий инет парнушки не сможет посмотреть. Но естественно такое дело тоже можно мониторить и конфигурировать. Первым завопит ав при инстале (мож он парнушку не смог закачать и орёт_хз. Вам видней чо нужно..
Станет! А почему не воспользоваться Родительским контролем, который во всех крутых firewall есть? Просто самодельную защиту можно обойти другими средствами - проксишниками или через sock5. Правда про обходы Родительского контроля тоже не в курсе.