Toon posts:

[VB.NET] Blokkeer een "force kill"

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo allemaal,

Laatst kwam het idee op om een applicatie te programmeren waarmee je op bepaalde accounts tijdslimieten in kunt stellen. (Ik weet dat hier al programma's voor zijn alleen het gaat mij meer om het programmeren dan dat ik er een programma voor nodig heb).
Het enige probleem waar ik tot nu toe tegenaanloop is dat het programma gesloten kan worden via taakbeheer (dit mag niet uitgeschakeld worden), cmd (dit mag wel uitgeschakeld worden en gaat prima lukken), via batch of een ander programma. Op deze manier zou dit tijdslimiet omzeild kunnen worden.

Ik zoek dus een manier om mijn applicatie te beveiligen tegen een force kill zodat het tijdslimiet systeem niet op deze manier omzeild kan worden (Zoals vaak gebruikt in AV programma's om te voorkomen dat een virus e.d. het af kan sluiten).

Eisen zijn dat de account waarop het tijdslimiet ingesteld moet worden wel adminrechten heeft. Deze gebruiker moet zelf programma's kunnen installeren/verwijderen en gebruik kunnen maken van taakbeheer etc. alleen niet de mogelijkheid hebben om het tijdslimietprogramma af te sluiten.

Tot nu toe heb ik de volgende mogelijkheden:
- Een systeemservice maken (dit ligt iets meer verborgen maar is nog niet ideaal)
- Een guard process maken die de applicatie weer opstart als het afgesloten wordt (niet echt mijn voorkeur)

Iemand suggesties?

Acties:
  • 0 Henk 'm!

  • Mavamaarten
  • Registratie: September 2009
  • Laatst online: 11:06

Mavamaarten

Omdat het kan!

Je kan bij formClosing event kijken waarom hij sluit (e.closereason).
Je kan bijvoorbeeld dit doen:
code:
1
2
3
If e.CloseReason = CloseReason.TaskManagerClosing Then
            Application.Restart()
End If


Zodat je app restart wanneer je hem zo sluit. Ik heb ook een andere manier om dit te doen, maar dan zit je te knoeien met het taskmanager proces (en dit vraagt veel CPU omdat de code een beetje dirty is), dat doe je echt alleen als laatste redmiddel.

Android developer & dürüm-liefhebber


Acties:
  • 0 Henk 'm!

  • Nextron
  • Registratie: Maart 2005
  • Laatst online: 14:23

Nextron

Ik weet dat ik niets weet

Waarschijnlijk moet je het toch in de richting met rechten zoeken. Zodra je rechten hebt om de applicatie te sluiten kun je dit ook geautomatiseerd doen, buiten taakbeheer, tegelijkertijd met de watchdog en sneller dan dat de applicatie herstart en volledig initialiseert.

Hoe meer ik weet,
hoe meer ik weet,
dat ik niets weet.


Acties:
  • 0 Henk 'm!

  • Glashelder
  • Registratie: September 2002
  • Niet online

Glashelder

Anti Android

Dat wordt niet aangeroepen als een proces gestopt wordt via taakbeheer. Wel bij 'taak beëindigen' maar niet 'proces beeindigen'. Maar dat eerste is dan ook geen 'kill'.

PV 4915wp op oost, 2680 wp op west, 1900 wp op zuid. pvoutput - AUX 8 kW bi bloc


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@Mavamaarten:

Ja dat is opzich wel een idee alleen zit ik met het probleem dat dit te omzeilen is via een ander programma, stel ik release zoiets dan kan een ander programma het process op dezelfde manier sneller taskkillen, zoals "Nextron" aangeeft.

De andere code heb ik ook eens gemaakt, die checkt om de paar seconde of taskmgr openstaat zo ja dan gebruikt ie process.kill() alleen het is niet de bedoeling dat taakbeheer niet meer werkt. De gelimiteerde gebruiker moet nog wel in staat zijn om andere processen te beindigen maar niet om deze te beindigen.

@Nextron:

Dit was dus ook precies wat mijn probleem was, ik wil niet dat het via taskmgr af te sluiten is, noch via een externe applicatie. Is het mogelijk om een gebruiker geen rechten te verlenen om het programma af te sluiten?

Het vreemde vind ik dat AV scanners niet afgesloten kunnen worden.
Wat ook lastig is, is dat zodra een programma wordt "gekilled" het zijn code niet afmaakt, dus het gaat niet door.
Sub Form_Closing().....

*BTW: Ik heb vandaag geen tijd meer om hier verder aan te werken, bedankt alvast voor de reactie. Waarschijnlijk kan ik er morgen weer aan verder werken

Acties:
  • 0 Henk 'm!

  • Glashelder
  • Registratie: September 2002
  • Niet online

Glashelder

Anti Android

AV scanners zitten dan ook diep in het systeem. Die hebben drivers die in de kernel actief zijn die allerlei zaken afvangen (netwerkverkeer en I/O). Ik kan me zo voorstellen dat die drivers ook kunnen voorkomen dat een proces gekilled wordt. Maar helemaal zeker weten doe ik het niet..

PV 4915wp op oost, 2680 wp op west, 1900 wp op zuid. pvoutput - AUX 8 kW bi bloc


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Verwijderd schreef op zaterdag 21 januari 2012 @ 20:07:
Eisen zijn dat de account waarop het tijdslimiet ingesteld moet worden wel adminrechten heeft. Deze gebruiker moet zelf programma's kunnen installeren/verwijderen en gebruik kunnen maken van taakbeheer etc. alleen niet de mogelijkheid hebben om het tijdslimietprogramma af te sluiten.
Ja, dat kán dus niet. If you don't trust your administrators, you've already lost.

Als gebruikers software moeten kunnen installeren dan kunnen ze dus ook software /over jouw programma heen/ installeren, en daarmee alsnog je beveiliging omzeilen.

[ Voor 27% gewijzigd door ValHallASW op 22-01-2012 02:33 ]

Pagina: 1