[ NeznamTkoSam @ 21.12.2004. 21:36 ] @
Kako mogu napraviti zastitu za neki program da se ne moze iskljuciti niti preko task managera, nego za iskljucivanje da bude potrebna lozinka? Tako rade sigurnosni programi koji omogucuju zastitu podataka tako da se program moze pokrenuti samo pomocu lozinke.
[ blaza @ 22.12.2004. 00:49 ] @
Koji OS?
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.
[ Sundance @ 22.12.2004. 01:05 ] @
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.
[ blaza @ 22.12.2004. 05:40 ] @
Sundance, rekao sam obicnog korisnika :)
Obicni korisnici ne pisu skripte, cak ni trivijalne, niti znaju koje je procese potrebno ubiti, a koje ne.
Tvoje resenje je naravno bolje.
Fullproof resenje ne postoji.
[ NeznamTkoSam @ 22.12.2004. 22:13 ] @
Sundance, mozes li mi to malo bolje objesniti, molim te, ako ti nije tesko.
Blaza, svaka cast, odlicna ideja! Mozda to rijesim tvojom metodom.
Hvala svima!