Laden...

Prozess schützen

Erstellt von dcna91 vor 13 Jahren Letzter Beitrag vor 13 Jahren 4.383 Views
dcna91 Themenstarter:in
48 Beiträge seit 2007
vor 13 Jahren
Prozess schützen

Ich wollte dieses Problem vor ein Paar Jahren lösen, aber konnte damals keine Lösung finden. Nun interessiert mich die Frage wieder.

Ich möchte mein Programm Prozess ganz einfach vor einem Kill schützen. Ich möchte nicht das der Benutzer es auf irgendeiner Weise den Prozess, z.B. über den Task Manager abschiessen kann. Das aus Schutz, weil ich die Software für eine Schule schreibe und die Benutzer sehr aggressiv gegen solche Massnahmen vorgehen.

Geht das evtl. über ein Windows Service oder sonst irgend ein Windows Hook? bzw. eine Ausblendung des Prozesses wäre auch schon sehr hilfreich.

Wichtig hierbei ist nur das ich die Möglichkeit habe die Software anfangs als Administrator zu starten! Das ist kein Problem. Die Benutzer die an den PC's arbeiten haben dann keine Lokale Admin Rechte mehr.

B
33 Beiträge seit 2010
vor 13 Jahren

Du kannst ja versuchen das Programm hinter einem Prozess zu "verstecken".
Benenn es einfach so, wie ein ähnlicher System Prozess.

Zusätzlich kannst du in Form1.Designer.cs

this.ShowInTaskbar = false;

setzen.

So kannst du zumindest ausschließen, dass das Programm direkt erkannt und geschlossen wird. Vor ganz pfiffigen Schülern wird es allerdings mit dieser Methode nicht sicher sein.

Gruß,

Bodie

Wer immer das tut, was er schon kann,
bleibt immer das, was er schon ist.

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo dcna91,

soweit ich weiß, kann man das mit einem Hook auf die entsprechende Funktion in der Win32-API machen. Darauf reagiert man und unterbindet dann das killen.

zero_x

N
7 Beiträge seit 2008
vor 13 Jahren
4.938 Beiträge seit 2008
vor 13 Jahren

Wenn die Benutzer keine Admin-Rechte haben, dann können diese doch gar nicht über den TaskManager den Prozess killen (wenn dieser von einem Admin-Konto aus erstellt wurde).

B
33 Beiträge seit 2010
vor 13 Jahren

Doch, können sie.
Dies hat bei uns an der Schule auch immer funktioniert, obwohl wir Schüler keine Admin-Rechte hatten.

Gruß,

Bodie

Wer immer das tut, was er schon kann,
bleibt immer das, was er schon ist.

888 Beiträge seit 2007
vor 13 Jahren

Doch, können sie.
Dies hat bei uns an der Schule auch immer funktioniert, obwohl wir Schüler keine Admin-Rechte hatten.

Falsch! Da must Du was verwechseln.

@dcna91
Starte Deinen Prozess als System-Dienst und schon können User die kein administratives Recht haben diesen nicht beenden.

Grüße

J
1.114 Beiträge seit 2007
vor 13 Jahren

Dies hat bei uns an der Schule auch immer funktioniert, obwohl wir Schüler keine Admin-Rechte hatten.

Dann hattest du eventuell lokale Adminrechte, oder die Kiste war einfach zu offen konfiguriert.

Unter XP und später sollte ein normaler Benutzer nicht so ohne weiteres in der Lage sein, irgendein Dienst unter dem System Konto abzuschiessen.

B
33 Beiträge seit 2010
vor 13 Jahren

Mag sein, dass ich hier etwas durcheinander bringe oder die Situation bei uns eine andere war.

Aber in der Theorie ist es natürlich so, dass ein "normaler" User nicht in der Lage sein sollte dies zu tun.

Gruß,

Bodie

Wer immer das tut, was er schon kann,
bleibt immer das, was er schon ist.

2.298 Beiträge seit 2010
vor 13 Jahren

Erinnert mich ein wenig an das Programm was unsere Lehrer meinten uns vorsetzen zu müssen während der Ausbildung. - Nannte sich Mastereye und unsere Lehrer waren Tatsächlich der Meinung die können uns den Bildschirm sperren und das Programm könne nicht umgangen werden. - Schwupps Firewall an und dann wars das auch schon. Also ich denke in welcher Hinsicht auch immer, irgend ein Pfiffiger Schüler wird auch das umgehen können-

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

Gelöschter Account
vor 13 Jahren

Also ich denke in welcher Hinsicht auch immer, irgend ein Pfiffiger Schüler wird auch das umgehen können-

Damit hast du prinzipiell recht aber wenn die Benutzerrechte korrekt gesetzt sind, dann tut man sich unter windows schon extrem schwer und wenn es ein schüler trotz korrekt gesetzter rechte schafft, dann hat er sich es verdient und ist in der schule ohnhin fast fehl am platz 😉

ps: das mit der firewall deaktivieren und aktivieren ist auch eine rechtesache....

2.298 Beiträge seit 2010
vor 13 Jahren

Ist aber auch schon interessant wenn man in einer Beurfsschule an einem Rechner sitzt und die Firewall aus ist, weil den Port nur freizugeben wäre für unseren Admin ja zu einfach gewesen g. Der lies lieber die Passwortlisten neben uns liegen.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

1.130 Beiträge seit 2007
vor 13 Jahren

Ich hatte mal lust dazu und hab mal de unsaubere variante mit hooks implementiert. Und weil es in c++ sauberer und schneller geht, habe ich es auch in c++ gemacht^^

Resultat ist im Angang. Ich hab mal als test das Abschießen des taskmanagers aus einem anderen prozess (inklusive tricks wie createremotethread und co) verhindert. Es ist ein check eingebaut, das sich das programm selber beenden darf. Außerdem wird das Senden von WM_Close und WM_quit nicht verhindert, aber das sollte kein problem darstellen, man kann seine eigene anwendung entsprechend anpassen.

wirklich wasserdicht ist das system nicht, es lässt sich mit ca. 7 zeilen c++ umgehen, aber nur wenn man weiß, wie es funktioniert.

Verwendung:

  1. compilieren
  2. ins systemverzeichnis kopieren
  3. im Schlüssel "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows" den wert AppInit_DLLs auf den dllnamen setzen

es ist aber wie gesagt die unsaubere variante und man muss ziemlich aufpassen. Deshalb ist es in 99% der fälle b ersser rechte zu verteilen.

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

Gelöschter Account
vor 13 Jahren

Wenn man im Taskmanager auf "Prozesstruktur beenden" geht, dann sollte dein schutz dennoch nicht funktionieren oder?

1.130 Beiträge seit 2007
vor 13 Jahren

vermute, dass es auch das abkann, aber ich probiere es gleich mal aus...

[EDIT]
2 meldungen: "zugriff verweigert" und "mindestens ein prozess aus der prozessstruktur konnte nicht beendet werden"

also hat der schutz es abgefangen...

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo Floste,

es wäre nett, wenn du dein Beispielprojekt in den .NET-Komponenten und C#-Snippets veröffentlichen kannst. Andere, die danach suchen, wären bestimmt froh, wenn sie sowas finden. Es gibt bestimmt Interessenten.

zero_x

1.130 Beiträge seit 2007
vor 13 Jahren

es ist aber weder besonderrs sauber, noch funktioniert es unter x64 (das portieren ist auchnicht trivial) noch ist es c#

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!