"Blindare" un processo

venerdì 18 agosto 2006 - 11.09

us01739 Profilo | Expert

Ciao a tutti, eccomi qua con le mie domande impossibili......

Ho creato un servizio (con vb.net 2.0) del quale ho impostato la propietà canstop=false in modo che non possa essere stoppato....

Purtroppo però non ho ancora trovato la strada per far sì che l'utente NON RIESCA a buttare giù il relativo processo dal task manager.

Qualche idea?
Grazie fin da ora.

Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

blood Profilo | Senior Member

>Purtroppo però non ho ancora trovato la strada per far sì che
>l'utente NON RIESCA a buttare giù il relativo processo dal task
>manager.
>
>Qualche idea?
>Grazie fin da ora.

io penso che dovresti dargli le credenziali di System come padrone del processo, in tal modo un semplice utente non può killarlo...ad es prova a lanciare il tuo programma invece che come servizio, usando il comando AT di windows:

C:\> AT hh:mm /INTERACTIVE "tuofile.exe"

dove hh:mm sarà l'ora in cui vuoi farlo eseguire, ad es. un min dopo la tua ora corrente.

Se premi ctrl + alt + del , vedrai che sarà lanciato da SYSTEM...e dovresti non riuscire ad eliminarlo
---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)

us01739 Profilo | Expert

Nel mio caso purtroppo non è applicabile perchè, ed è una condizione NON MODIFICABILE, l'utente è aministratore della macchina, in quanto sul client girano altri applicativi che necessitano di questi diritti.

Quindi devo inderogabilmente partire da questo presupposto: l'utente è amministratore!!

Quello che vorrei cercare di fare, e un processo tipo il firewall BLACKD:EXE che quando cerco di killarlo mi risponde comunque accesso negato...

Daccordo, esiste comunque la possibilità di buttarlo giù riavviando in modalità provvisoria, ecc ecc..., ma questo và oltre le potenzialità dell'utente medio che voglio bloccare...

Grazie a tutti

Bye BYe
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

revontulet Profilo | Junior Member

>Quindi devo inderogabilmente partire da questo presupposto: l'utente
>è amministratore!!
>

Ciao
una possibile soluzione prevede la presenza di piu' amministratori per cui
1 lanciare il processo come SYSTEM e
2 modificare i criteri di protezione per debug programmi sosituendo al gruppo administrators
l' effettivo amministratore "totale" lasciando fuori cosi l'amministratore "utente"
Provato su XP funziona .
D'altronde presumo anche io che vi siano soluzioni a livello di codice ( quelle usate da quei processi su cui si tenta il comando kill ...) anche se il dubbio di conseguenze di instabilita' di sistema e' forte..

us01739 Profilo | Expert

Non ho capito molto bene come fai, potresti essere un po' più dettagliato?
Grazie 1000 comunque
Ciao
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

revontulet Profilo | Junior Member

ti dico come ho eseguito la prova su XP

su questa macchina ho n account amministratori ma solo uno e' quello con pieni poteri

in strumenti amministrazione -> criteri di protezione locale -> assegnazione diritti utente

ho modificato le impostazioni di protezione per il criterio "debug di programmi" sostituendo al gruppo administrators di default solo l' accounrt dell 'amministratore pieno.

se mi collego con uno degli altri amministratori e lancio task manager riesco a chiudere i loro processi ma sui processi con nome utente system ottengo"accesso negato"

se mi collego con amministratore pieno riesco a chiudere anche quelli di system

us01739 Profilo | Expert

Ingegnoso!!!

Lo terrò in considerazione, ma sto cercando una soluzione più "elegante" da inserire nel codice del servizio.

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

blood Profilo | Senior Member

prova ad utilizzare l'oggetto ServiceProcessInstaller che ti permette di determinare l'identità del servizio...magari usando NetworkService o LocalSystem (che pare essere il piu alto) non te lo fa terminare..
---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)

us01739 Profilo | Expert

Ci proverò e ti faccio sapere.
Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5