Доброго всем времени суток. У меня маленькая проблема: мне нужно перехватить любую попытку завершить мой процесс и послать завершающую прогу далеко... В прогах используются драйвера (в моей и в той которая пытается убить мой процесс). Пожалуйста помогите. Заранее всем спасибо.
перехватить ZwOpenProcess с попыткой открыть процесс с PROCESS_TERMINATE. возвращай ERROR_ACCESS_DENIED
Запускай новою копию своего приложения и "успешно закройся" . Это, правда, не всегда возможно, но иногда прекрасная альтернатива .
Чтобы тебя не убили - сделай так, чтобы нечего было убивать. Согласись, шпиону легче спрятаться, чем в одиночку отбиваться от всего вражеского полка. Это так..предисловие. А если конкретно, то: 1. Запихнуть свой код в длл и подгружать ее... Не у каждого юзера хватит ума выгрузить длл.... Но что там выгрузить..ее еще и найти нужно 2. Файловые вирусы. Самый проверенный способ 3. Перехват АПИ. Тут на сайте есть целые статьи от Ms-Rem про перехват. Кстати, посвящены делфистам. Т.е. разобраться сможет даже дельфин. 4. Самое примитивное, что ты можешь сделать, это назвать процесс - winlogon. По крайней мере с диспетчера задач его не убить будет. 5. Драйвер. Оно конечно святое, но я думаю, если бы ты был хорошо знаком с технологией написания драйверов, такой вопрос не возник бы... Так что этот вариант отбрасываем.
Ещё как вариант оформить всё в виде сервиса и указать в свойствах автоматический перезапуск в случае умирания/убиения. Правда воскресать будет только через минуту, но иногда такой вариант приемлем.