Защита от нежелательного завершения процесса

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Защита от нежелательного завершения процесса

Сообщение |( () ( T |/| |( » 25.10.2006 (Ср) 19:42

Как можно такое реализовать?
С=[::::::::::> ™ e398wallpapers.narod.ru

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 25.10.2006 (Ср) 19:45

Перехват OpenProcess.
Изображение

|( () ( T |/| |(
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 211
Зарегистрирован: 01.10.2005 (Сб) 15:49

Сообщение |( () ( T |/| |( » 25.10.2006 (Ср) 20:12

keks-n, можно какнибуть поподробнее?
С=[::::::::::> ™ e398wallpapers.narod.ru

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 25.10.2006 (Ср) 20:26

А поподробнее уже не на Visual Basic. И, вообще, такие перехватчики пишут самостоятельно, ибо слишком серьёзное оружие, чтобы его раздавать.
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 26.10.2006 (Чт) 9:44

keks-n, ну какое же это оружие? Вот ReDim'ер это оружие... А это так...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 18:31

если в Task Manager например завершат процесс, то, помоему ВСЕ. только если создать прогу которая будет открывать твою прогу заново когда та будет выбиваться...

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 28.10.2006 (Сб) 18:51

Я вообще не понимаю вопроса "Как завершить процесс", если прога
а) Может не быть процессом - как следствие ее нельзя завершить
б) Может работать от имени другого, в том числе и системного процесса.

Но меня на данный момент интересует еще такая тема: Можно ли создать прогу, которая работая под ограниченной учетной записью могла бы тем не менее остаться неубиваемой для администратора?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 19:07

а разве переименование в csrss.exe не выход?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 20:03

Не выход. Существует тима тьмущая самопальных пришибалок, которые забивают на системность/несистемносто процесса. Панацеей может быть лишь перехват на уровне ядра некоторых API, ставящих целью:
а) Открыть процесс(не панацея, доказано Twister'ом, перечислением хындлов отркытых в csrss.exe).
б) Завершить его(тоже не панацея - можно взять на отладку и завершить её - процесс завершится без ZwTerminateProcess).
в) Взять на отладку.

После чего можно спать спокойно - 99% пришибалок процесс не возьмут.
Сложность состоит только в написании драйвера и его протаскивании в ядро.
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 20:07

О пригодится, спасибо

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 28.10.2006 (Сб) 20:21

г) любой процесс можно завершить из драйвера путем зачистки его памяти.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 20:26

ну вот. :x

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 20:29

ANDLL
Это уже в тот 1% вписывается. И не отлавливается практически никак.
+Такой способ может нанести системе вред.
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 28.10.2006 (Сб) 20:52

Интересно, какой?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 21:08

Стирание из памяти. Неизвестно, с чем он процесс работал, и насколько неприятны будут последствия его завершения. Да и драйверок, не обнаружив его в живых, может напакостить.
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 21:50

а разве в драйверок проверочку нельзя зделать?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 28.10.2006 (Сб) 21:52

Неизвестно, с чем он процесс работал, и насколько неприятны будут последствия его завершения
Неважно, с чем он работал, операционная система не деградирует после внезапного завершения подавляющего большинства процессов.
Да и драйверок, не обнаружив его в живых, может напакостить.
Это уже зависит от кривизных рук программистов. Правильно - прежде чем чтото делать надо просто проверять
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 28.10.2006 (Сб) 21:54

Помоему сказать что процесс нанесет вред системе когда его сотрут из памяти не правильно. Ведь если ты закрываешь процесс через TaskMGR тыж както не наносишь системе вред...... :roll:

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 28.10.2006 (Сб) 21:56

Я про защищающий драйверок. У него цель или не дать прибить, либо прибить вместе с убиенным и систему(обычно банальный перезагруз), чтоб неповадно было.
система не деградирует после внезапного завершения подавляющего большинства процессов.

Прибей таким образом Defrag.exe во время работы.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.10.2006 (Сб) 22:13

keks-n писал(а):Прибей таким образом Defrag.exe во время работы.

Слышал, что люди пробовали, и остались довольны результатами. Журналирование NTFS рулит.
Изображение

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 29.10.2006 (Вс) 9:51

Была идея сделать несколько программ (5), которые запускаются вместе с главной и, не обнаружив кого-то в живых, восстанавливают

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 29.10.2006 (Вс) 11:17

Эта идея старше мира. Обход тривиальный: SuspendThread на все процессы, и потом их спокойно убить спящими.
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 29.10.2006 (Вс) 14:06

проверка-например постоянное изменение прогами каких то файлов и соответствено проверять атриббут ИЗМЕНЕН. если стоит Suspend зделать килл Suspendnого процесса и запустить его заново.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 29.10.2006 (Вс) 18:11

yaklit
Ты не понял, Suspend сделают твоему процессу и тихо и незамтено прибьют.
Если всё делать своими ручками, они скоро отвалятся !

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 29.10.2006 (Вс) 19:57

ну так процессов то 5

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 29.10.2006 (Вс) 20:07

yaklit, все пять засуспендят одновременно - они и моргнуть не успеют. :)

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 29.10.2006 (Вс) 20:27

:roll: терь понял.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Сообщение Debugger » 29.10.2006 (Вс) 22:32

Моргнуть точно не успеют... И если просто убьют - ен моргнут. Процессы не моргают.
А если их больше? Штук 20, например? По идее, пока 2й засыпает, просыпается 1й и т.д.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 29.10.2006 (Вс) 22:42

Debugger, то же самое.

Проведи эксперимент, если не веришь :)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 29.10.2006 (Вс) 23:33

Нет, ну, в теории, может произойти переключение контекста потока на один из убиваемых процессом и он что-либо заметит, но... Слишком маловероятно.
Для пущей уверенности можно написать драйверок, и, подняв IRQL, кого надо переубивать.
Изображение

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 113

    TopList