Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.16.67.13] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Пишу защитную програмулинку, по типу антивируса. хочу что бы она так же как антивирус там NOD32 или Касперский после завершения процеса через диспетчер задач-восстанавливалась.
Есть идея запускать службу,которая будет проверять работает ли мой процесс,и если нет, то запускать его, только вот с реализацией такой службы слабовато.примеры служб смотрел, но мне туда ведь надо таймер впаять. Может создавать динамически его там? как сделать лучше? |
Сообщ.
#2
,
|
|
|
не надо таймер, WaitForSingleObject(...) вызванная с дескриптором процесса ждет его завершения.
|
Сообщ.
#4
,
|
|
|
А что будет мешать завершить такую службу. На сколько я помню каспера или нод вообще нельзя выгрузить принудительно.
Добавлено ну в смысле общеизвестными методами |
Сообщ.
#5
,
|
|
|
Неубиваемую программу делать нельзя в принципе.
А вдруг в ней ошибка и она, взбесившись, начала все диски поочереди форматировать ? Даже Microsoft, не делает свои процессы неубиваемыми (в т.ч. и жизненно важные для системы). Согласна, некоторые (в т.ч и известные компании) мнят себя пупом земли, считают, что они непогрешимы (нет багов в их творениях), пользователь купил компьютер только ради счастья поставить их продукт и начинают создавать "неубиваемые" процессы и т.д. и т.п. Но не стоит на них равняться. Гораздо лучше сделать "снимаемую" программу, но только с согласия пользователя. Кстати, данная задачка будет посложнее и поинтереснее предыдущей |
Сообщ.
#6
,
|
|
|
Shaggyсмысл ясен но среализацией под делфи не особо, не подскажеш как это под делфями будет выглядеть?
P.O.D а есть другие варианты? я просто заметил что у нода висят службы, вот и сделал такие выводы... Riply кто говорит о неубиваемости? А Как же стандартный uninstall?? нужно что бы просто кто попало движением 2-х пальцев не мог грохнуть процесс. |
Сообщ.
#7
,
|
|
|
Такие вещи делаются вообще-то настройкой прав доступа (службу обычный пользователь остановить при всём желании не сможет). В крайнем случае - ACL списков (например).
Более криво можно два процесса следящие друг за другом (необязательно службу). Один закрылся - второй его перезапускает. Второй закрылся - первый его перезапускает. В Vista даже есть API специальное: Application Recovery and Restart, предназначенное для перезапуска программ (не служб - у них для этого есть SCM) в случае вылета по необработанному исключению. |
Сообщ.
#8
,
|
|
|
упс! проглядел: Minimum supported client Windows Vista
|
Сообщ.
#9
,
|
|
|
CodeMonkeyнасколько я понял из описания,то это от ctrl+alt+delete не спасёт
Цитата However there are some problems: This code does not prevent the user from reverting the process DACL to the original state. An owner of the process can always change the DACL even if she is not listed in it. So the code just prevents a beginner from closing the application forcefully. Any user with the DEBUG privilege can open the process with full access using OpenProcess. The taskmanager uses this way to terminate a process – if TaskManager is started with administrative rights. |
Сообщ.
#10
,
|
|
|
Цитата -TOXA- @ The taskmanager uses this way to terminate a process – if TaskManager is started with administrative rights. Если у меня есть администраторские привилегии, мне ничто не может помешать получить DEBUG привилегию, подключиться к процессу и перевести EIP на ExitProcess(0) Даже TerminateProcess можно не вызывать. Вам про это и твердят: если вам нужна защита от "кого попало", не давайте этим "кто попало" административных учёток. Пусть работают под пользователем. |
Сообщ.
#11
,
|
|
|
CodeMonkey да причём тут это? если уж на то пошло, то можно просто запретить запуск таскменеджера. но я то пишу програмный продукт, а не настраиваю виндовс тому учётку админа, а тому учётку урезанную...... не то это всё.
|
Сообщ.
#12
,
|
|
|
-TOXA-, не испоганив систему, от админа защититься невозможно.
Поэтому, imho, CodeMonkey и предлагает работу с "учетками" |
Сообщ.
#13
,
|
|
|
Поганить ничего не надо,да и защищатся от админа тоже. как же Антивири? у них получается же восстановится после убивания процесса.
WaitForSingleObject(...) вызывает зависание сервиса,пока процесс не завершится может лучше всё таки Timer1.create(self), а там гонять проверку работает ил процесс? |
Сообщ.
#14
,
|
|
|
Цитата -TOXA- @ как же Антивири? А вы драйвер горазды писать? Не занимайтесь извращениями. Добавлено Вам же подсказали идею: два процесса, следящие друг за другом. В чём проблема? |
Сообщ.
#15
,
|
|
|
Цитата -TOXA- @ WaitForSingleObject(...) вызывает зависание сервиса,пока процесс не завершится В потоке следи. А сервис пускай занимается своим непосредственным делом - периодически уведомляет SCM. |