Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Защита от TerminateProcess [D5, D6, NT4, Win2k, WinXP]


Sodom ©   (2002-12-14 10:29:00) 

Как мне защитить свой процесс от применения этой функции другим процессом? Т.Е. чтобы любой другой процесс не мог меня вырубить этой функцией.


alexteam   (2002-12-20 10:53:00) [1]

если пишеш прогу которая запускается при помощи autorun-a
то возможно поможет обработчик ontimer если в него вставить
функцию уничтожения процесса по HWND(в данном случае диспечер задач или как там его)
пиши что получилось alexteam@rambler.ru


AlexandrRya   (2002-12-15 10:58:00) [2]

Можно сделать так, чтобы твоего процесса не было. Не скрыть его перехватом NT(ZW)QuerySystemInformation, а чтобы его не существовало реально - т.е. создать свою нить в чужом процессе.


TankMan   (2002-12-15 03:10:00) [3]

Люди, а ктонибудь может подсказать, как можно перехватывать Апифункции из глобального хука, ... как писал Василий2... я думаю это будет намного надежней, хоть и больше гемороя с этим, но всетаки... может кто даст пример или укажет на литературу(не видел такой, просто)...


KPV-10k   (2002-12-14 22:47:00) [4]

Короче так как у тебя процесс должон работать под ядром НТ, то отбирай у него все права доступа (должно работать даже с правами гостя), но эта ф-ция не спасет от хитрых и злобных юзверей с правами SeDebugPrivelege, но есть способ обхода и этой бодяги... пишите может поделюсь... В)

А вот собственно и ф-ция (юзайте "на здоровье"):
function MadeProcessImmortal:Boolean;
Var
ACL : _ACL;
begin
Result:=False;
if (InitializeAcl(ACL, SizeOf(_ACL), ACL_REVISION)) and (IsValidAcl(ACL)) then begin
SetSecurityInfo(OpenProcess(PROCESS_ALL_ACCESS, False, GetCurrentProcessId),
SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, nil, nil, @ACL, nil);
Result:=True;
end;
end;


Song   (2002-12-14 22:04:00) [5]

:)


Rouse_   (2002-12-14 19:25:00) [6]

> Song © (14.12.02 16:52)

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

Желаю успехов


Василий2   (2002-12-14 18:22:00) [7]

Song © (14.12.02 15:09)

А как она определять-то будет? По таймеру чтоли?

P.S> Помогите - http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1039769394&n=5


Song   (2002-12-14 16:52:00) [8]

2Rouse_ © (14.12.02 15:18)
Дело в том, что эта прога также не одновременно будет их убивать, а один за другим, поэтому если сделать постоянное наблюдение в потоке, надо ещё проверить кто кого :)


Cobalt   (2002-12-14 16:26:00) [9]

Sysinternals Process Explorer - "Найдется все!"


Rouse_   (2002-12-14 15:18:00) [10]

> Song © (14.12.02 15:09)
Метод "Gorpher" :))
Действительно, просто и надежно, но завершить всетаки можно, написав программу которая будет отрубать все три процесса, и проверять их на повторный запуск

> Василий2 © (14.12.02 14:46)
А что за зверь такой? У меня только Starter стоит, он сервисов в упор не видит :((

Желаю успехов


Song   (2002-12-14 15:09:00) [11]

Запускать три процесса, каждый из которых будет "подстраховать" каждый следующиий. Завершить их будет все непросто.


Sodom   (2002-12-14 14:57:00) [12]


> Василий2 © (14.12.02 14:46


> Написать перехватчика API вызовов (TerminateProcess в данном
> случае).

Перехватить API, это ясно. Гимора много. Может можно как нибудь проще?


Василий2   (2002-12-14 14:46:00) [13]

Rouse_ © (14.12.02 14:16)
Такие проги как ProcessExplorer отрубают и сервисы!!!

Sodom © (14.12.02 10:29)
Написать перехватчика API вызовов (TerminateProcess в данном случае).


Rouse_   (2002-12-14 14:16:00) [14]

> не запускать свой процесс.:))

Написать сервис?

Желаю успехов


Ketmar   (2002-12-14 14:06:00) [15]

не запускать свой процесс.

Satanas Nobiscum! 14-Dec-XXXVII A.S.


Наверх

Титульная страница Поиск, карта сайта Написать письмо