Citat:
blaza: Mozes kreirati dva ili vise procesa; svaki proces bi izmedju ostalog nekoliko puta u sec proveravao da li su ostali procesi aktivni, i u slucaju da nisu, pokretao bi iste. Kako pomocu TaskManager-a ne mozes 'ubiti' dva procesa istovremeno, ovaj vid zastite bio bi nepremostiv zid za obicnog korisnika.
Ili bi taj "obican korisnik" mogao skinuti neki besplatni alatic tipa
Process Explorer i ubiti cijelo stablo procesa. Ili ako nemaju zajednickog roditelja pojedine procese suspendirati pa ih onda redom ubiti. Ili napisati trivijalnu skriptu koja ce emulirati killall naredbu na unixu :) (recimo get-process <maska> + foreach petlja + stop-process <pid> za MSH)
Na win32 jedan od nacina da ovakvo nesto napravis jest da hookiras kernel32!TerminateProcess ili jos bolje ntdll!NtTerminateProcess i onda usporedjujes proslijedjeni PID sa onim "zasticenih" procesa. Nazalost i ovo se moze zaobici, ali sprijecit ce cak i vecinu naprednijih korisnika.
Za ovo ce ti trebati puno unsafe koda i dosta zivaca ako radis pod .NET-om, ako mislis sve sam rucno raditi. Najbolje bi ti bilo koristiti neke javne apihook DLL-ove i napraviti managed wrappere.