Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prozesse "Killen" und verhindern (https://www.delphipraxis.net/58488-prozesse-killen-und-verhindern.html)

Win32.API 7. Dez 2005 18:34


Prozesse "Killen" und verhindern
 
Hi,
ich suche eine Möglich kein Meinen prozess vor dem beenden zu schützen und andere Prozess die dagegen geschützt sind zu beenden.
Ein beispiel ist der Client der Firewall ZoneAlarm. Der prozess heiß zlclient.exe wenn ich versuche diesen zu beenden (TaskMgr) bekomme ich folgenden Fehler
Zitat:

---------------------------
Abbrechen des Prozesses nicht möglich
---------------------------
Der Vorgang konnte nicht beendet werden.

Zugriff verweigert


---------------------------
OK
---------------------------
Wie kann da sein? Ich bin als Admin angemeldet habe volle Rechte... Ich müsste doch im strande sein jetzt x-beliebigen Prozess beenden zu können , system Prozesse ausgeschloßen , oder?

greetz

MisterNiceGuy 7. Dez 2005 18:44

Re: Prozesse "Killen" und verhindern
 
Kann dir da leider nicht helfen :( Aber das Thema interessiert mich auch brennend.

Oxmyx 7. Dez 2005 18:46

Re: Prozesse "Killen" und verhindern
 
Ich kenne ZoneAlarm nicht, aber ich vermute stark, dass das ein Dienst ist. Dienste kann man nicht einfach killen.

LoRd-MuldeR 7. Dez 2005 18:50

Re: Prozesse "Killen" und verhindern
 
1) Dienste sollte man nich beenden, indem man den Prozess killt, sondern indem man den entsprechenden Dienst über den Service Manager stoppt.

2) Eventuell muss seich dein Programm zunächst die notwendigen Berechtigungen holen, bevor es bestimmte Prozesse killen "darf" (am besten mal Suchen)

Win32.API 7. Dez 2005 19:01

Re: Prozesse "Killen" und verhindern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Denn Dienst kann ich auch nicht beenden/stopen. (Screen als Attachment).
Ich kann ihn nur auf Deaktivieren und das wird erst nach einen Reboot wirksam. :shock:
Aber es muss doch möglich sein ihn zu beenden oder ihn zu stopen :pale: .


greetz

Zacherl 8. Dez 2005 13:02

Re: Prozesse "Killen" und verhindern
 
Als Stichwort werfe ich mal ACL ein.
Wie man diese anwendet weis ich nicht.

mumu 8. Dez 2005 13:08

Re: Prozesse "Killen" und verhindern
 
naja ich denke mal zone alarm verhindert das beenden, da die firewall nicht einfach durch viren und würmern beendet werden soll.

Luckie 8. Dez 2005 13:12

Re: Prozesse "Killen" und verhindern
 
Gehört ein Prozees nicht dir, kannst du ihn nur als Administrator beenden. Dienste tauchen so nicht im Windows Taskmanger auf, da sie Kindprozesse des svchost Prozesses sind. Dienste beendet man nicht über den Taskamanager, sondern in dem man sie in der Computerverwaltung stopp.

Zitat:

ich suche eine Möglich kein Meinen prozess vor dem beenden zu schützen
Schreib einen Dienst. Dieser läuft im Systemkontext und normale Benutzer werden ihn nicht beenden können. Administratoren werden ihn trotzdem stoppen können, aber das ist auch gut so.

Zitat:

andere Prozess die dagegen geschützt sind zu beenden
Siehe oben. Als Administrator kannst du jeden Prozess beenden und jeden Dienst stoppen.

JocalAreaNetwork 8. Dez 2005 14:06

Re: Prozesse "Killen" und verhindern
 
Eine andere Weise zu verhindern, dass dein Prozess gekillt wird wäre einen Api-Hook auf TerminateProcess zu setzen. Ich könnte mir vorstellen, dass manche Firewalls das auf diese Weise machen. :roll:

Win32.API 8. Dez 2005 14:20

Re: Prozesse "Killen" und verhindern
 
Das mit dem Api-Hook stimmt bei ZoneAlarm nicht ich habe die API gehookt , die Meldung zugeriff Verweigert kommt erst nach dem Hook.
Ach bin als Admin angemeldet und kann den Dienst weder stoppen noch beenden... :gruebel:.
Ich habe also keine kontrolle über den Dienst, ich kann ihn nur deaktivieren und das wird erst nach einen Neustart wirksam. :cyclops:

greetz

runger 11. Jan 2006 08:51

Re: Prozesse "Killen" und verhindern
 
Hallo Luckie,

deine Aussage stimmt nicht. Ich bin hier Domänenadmin.
Sowohl als Domadmin als auch als lokaler Admin lässt sich z.B. Mcaffee nicht stoppen.
MCaffee ist als Dienst nicht vorhanden. Wenn ich ihn versuche über den Taskmanager zu beenden
habe ich das gleiche Problem.
Zonealarm und MCaffee verhalten sich gleich.

Rainer

RavenIV 11. Jan 2006 09:36

Re: Prozesse "Killen" und verhindern
 
vermutlich werden die Dienste mit den Rechten "System" gestartet.
Dann hat niemand (nicht mal der Administrator) mehr das Recht, den Dienst zu beenden.

Ist auch sinnvoll so, denn es gibt Leute, die mit dem Administrator-Account arbeiten.

Daniel Schuhmann 11. Jan 2006 09:50

Re: Prozesse "Killen" und verhindern
 
Zitat:

Zitat von RavenIV
[...]denn es gibt Leute, die mit dem Administrator-Account arbeiten.

Abgesehen von "Zwangsbenutzeraccounts" in Firmen wird das zu 99,9% zutreffen. Ich persönlich kenne nicht viele Leute, die nur mit Power-User-Rechten oder noch niedriger arbeiten. Schließlich wird man bei der Installation automatisch Admin und mit Standardrechten arbeiten ist für viele auf Dauer unbequem. Die aktuellen Virenprobleme wären sicher nicht so akut, wenn mehr User mit eingeschränkten Rechten arbeiten würden...

RavenIV 11. Jan 2006 09:59

Re: Prozesse "Killen" und verhindern
 
Hier bei uns in der Firma sind nur die Entwickler "lokale Administratoren", alle anderen sind Power-User oder Standard-User.
Und wenn ich einen PC einrichte (für mich privat oder für Bekannte), dann ist der Benutzer maximal Power-User. Es gibt dann noch einen "admin", der Administrator ist. Ist halt manchmal etwas umständlich, aber sicherer.

Neotracer64 11. Jan 2006 14:56

Re: Prozesse "Killen" und verhindern
 
Delphi-Quellcode:
die Meldung zugeriff Verweigert kommt erst nach dem Hook.
Der Hook sitzt garantiert tiefer. KMode vermut ich mal.

MCQ 12. Jan 2006 12:02

Re: Prozesse "Killen" und verhindern
 
Zitat:

Zitat von Neotracer64
Delphi-Quellcode:
die Meldung zugeriff Verweigert kommt erst nach dem Hook.
Der Hook sitzt garantiert tiefer. KMode vermut ich mal.

Wenn man schon mit Hooking arbeitet kann man auch gleich den Aufruf der API ExitProcess(0) in den entsprechenden Dienst injezieren. Mit dieser Methode kann man restlos alles killen. Oder du überschreibst die Code-Section des Dienstes mit C3-Werten (return). Das hat zur Wirkung das so lange zurückgesprungen wird bis das Programm letztendlich beendet wird. Das sind natürlich zwei sehr radikale methoden, aber wenn gar nichts hilft helfen die Methoden bestimmt ;) bei letzten solltest du natürlich vor dem schreiben den Prozess per SespendThread anhalten und nach dem schreiben per RemoteThread wieder laufen lassen, da das Beenden sonst noch radikaler geschehen würde als es sowieso schon ist *g*


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz