Сейчас на форуме: jinoweb, bartolomeo (+5 невидимых) |
![]() |
eXeL@B —› Программирование —› Создать неубиваемый процесс |
Посл.ответ | Сообщение |
|
Создано: 07 ноября 2016 23:47 · Личное сообщение · #1 Хочу написать неубиваемый из диспетчера задач процесс. Придумал топорную идею: запускать два процесса, которые следят друг за другом. Первый процесс выполняет некоторую работу, а второй ждет его завершения. Если первый процесс завершен, второй запускает новый процесс и начинает работу с начала. Я реализовал это так: Code:
Но здесь только дочерний процесс следит за родительским. Если дочерний процесс вырубить, родительский не запустит новый процесс. Как это реализовать? Можно было в родительском процессе запустить новый тред, который вызывает WaitForSingleObject для хэндла дочернего процесса, но как получить этот хэндл, если функция CreateProcess не возвращает его? Какие подводные камни в таком способе "неубиваемости", если мое приложение будет иметь гуй и выполнять некоторую работу в системе? Или их нет? Как еще можно сделать процесс неубиваемым? Кроме маскировки под winlogon и использования хуков. Можно ли защититься от вырубания дерева процессов? ![]() |
|
Создано: 08 ноября 2016 00:12 · Личное сообщение · #2 ZeroMemory CreateProcess() возвращает хэндлы процесса и потока, так же хэндл процесса или иного обьекта можно получиться референсом, открыть процесс/поток/файл етц. Обычно в ядре завершение блокируется, ставятся хуки на сервисные таблицы. ----- vx ![]() |
|
Создано: 08 ноября 2016 00:20 · Личное сообщение · #3 |
|
Создано: 08 ноября 2016 00:51 · Личное сообщение · #4 |
![]() |
eXeL@B —› Программирование —› Создать неубиваемый процесс |
Эта тема закрыта. Ответы больше не принимаются. |