Нужно максимально защитить приложения от пользователя. Реализовал непотопляемый режим (запускаются 2 процесса и следят друг за другом), но такой вариант оказался не очень хорошим, т.к. легко можно завершить древо процессов, да и при запуске второго процесса иногда вылезают таблички о не подписанном приложении (на вин7). Надо какое-нибуть ноу хау с хуками, желательно пример. Естественно на решетке
Просто замаскируй свое приложение, чтоб он ни у кого не вызывало подозрений, а потом поставь атрибуты системный, если пользователь пытается удалить системный файл Windows 7 кричит как обкуренная, после чего уже никто не захочет удалять твою прогу))
Смотря какой уровень пользователя. Самый банальный: 1) Приложение запускается как служба (или как угодно но от другова пользователя) 2) А пользователь не имеет админских прав. Тогда он просто не может убить его так как у него не будет доступа к чужим процессам. Если пользователь имеет права админа, то врядли ты сможешь защитить. Как вариант - внедриться в системный/чужой процесс и оттуда контролировать работу твоего процесса. Но и опять же с помощью того же ProcessExplorer'a можно прибить такой процесс, предварительно прибив поток контролирования. Или вообще не прибивать процесс, а заморозить все потоки, тогда и прога будет весеть в процессах, но и делать ничего не будет. Но самый мощный способ - драйвер защищающий процесс, но увы это тоже не 100% результат, потому что антируткиты запросто прибьют такие процессы
На время скрыться от антируткитов можно по методу, который Cr4sh предлагал http://d-olex.blogspot.com/2010/12/blog-post.html
Эм, а разве незя просто хуков наставить? http://www.xakep.ru/post/14033/ http://www.rsdn.ru/?Forum/Info/FAQ.dotnet.hooks.aspx http://articles.org.ru/cfaq/index.php?qid=1321 Мне бы реализацию на шарпе этого дела))) Ещё хорошо бы пример повышение привелегий, чтобы через деспечер задачь обычный незя было грохнуть) Насчёт скрытия\переименования и т.д. это всё не катит. Пишу по сути приложение шутку, вот задался вопросом о его неубиваемости
NightShock посмотрел примеры статей которые ты привел и говорю тебе ФОРМУЛИРУЙ ТЕМУ И ЗАДАЧУ ПРАВИЛЬНО. Потому что все знающие люди подумали что ты хочешь написать подобие руткита, стандартные хуки и язык С# не годятся для реализации руткитов. Конечно если тебе интересна теория вот прочитай, но все эти действия из ring3 очень сильно палятся антивирусами. К тому же с момента написания этой статьи прошло уже 7 лет => система Windows и способы ее защиты очень сильно изменились. А твоя задача звучит так: Как скрыть программу из диспетчера задач на языке c#
Это, по сути, один из многочисленных вариантов реализации. Варианты со свякими драйверами т.д. тоже подходят, только желательно чтобы всё было одним файлом(возможно с распаковкой) и не требовало ребутов.
NightShock тебе же сказали пиши системный процесс - службу. Либо тупо "невидимое" приложение, которое никакого окна не создает либо запущено окно с флагом SW_HIDE (функция ShowWindow). А домохозяйки и не знают что такое диспетчер задач + положи exe в системную папку и назови типа swchost.exe, explorer32.exe
Невидимое приложение не выход, про деспетчер задач знают почти все, шифраваться под что-то тоже не хорошо. Хотелось бы примеры кода, ведь можно одним экзешником хук поставить на "терминейт процеес", ну максимум длл извлечь из ресурсов и через неё это делать. Также есть примеры на делфи где запускается процесс который незя убить через диспетчер задач, пишет отказано в доступе. А вообще вот та хренька, которую хочу сделать сложно убиваемой http://ifolder.ru/21206181 безвредно, кто не верит - подсмотрите исходник "дизасемблером"
без драйвера никак. самый плюшевый вариант: хуки на NtOpenProcess(), NtOpenThread(). Хотя на все защищенные процессы есть одна хорошая апи PsTerminateprocess