Beenden eines Prozesses mittels ACL verhindern
Hallo,
da ich mir den Code zum Verstecken eines Prozesses vor dem Taskmanager angeguckt habe, wurde ich darauf verwiesen lieber das Beenden eines Prozesses mit den ACLs zu verhindern. Meine Fragen: Geht dies mit eingeschränkten Rechten? Hat vielleicht jemand eine Beispiel Anwendung? Ich kenne mich in diesem Anwendungsgebiet nicht gut aus, daher wäre ein Beispiel halt sinnvoll. Florian |
Re: Beenden eines Prozesses mittels ACL verhindern
Es geht immer. Auch mit eingeschränkten Rechten. Allein, es hilft nur bedingt, weil sich ein Admin oder das System die nötigen Rechte besorgen kann ;)
Verbieten kannst du den Zugriff im ACL aber schonmal für alle außer dem Benutzer in dessen Kontext du läufst. Absolutismen gibt es eben nicht ;) |
Re: Beenden eines Prozesses mittels ACL verhindern
Gut. Es geht nämlich auch nicht um die Admins, die das Programm nicht beenden sollen.
Hast du vielleicht einen kleinen Quelltext? Wie gesagt, in dem Gebiet kenne ich mich nicht sehr gut aus ... Florian |
Re: Beenden eines Prozesses mittels ACL verhindern
Dann wühle dich mal von SetKernelObjectSecurity aus durch die Funktionen. Auf NT4 gibt's ein paar Fallgruben, aber das ist ja möglicherweise nicht zu akut. Ansonsten ist die einzige nichtkommerzielle Seite, die ich zum Thema Sicherheit mit Delphi kannte, irgendwann im letzten Jahr in den Tiefen des WWW begraben worden :| ... die gibt's also nicht mehr. Aber o.g. Funktion sollte dich schon weiterbringen.
Unter http://jedi-apilib.sf.net solltest du eigentlich auch die Deklarationen der entsprechenden Funktionen und Strukturen finden. |
Re: Beenden eines Prozesses mittels ACL verhindern
Ich komme nicht klar mit der SetKernelObjectSecurity Funktion.
Bitte nennt mir ein Aufrufbeispiel wie man das Beenden des eigenen Prozesses verhindert. Der 1. Parameter ist schonmal die ProcessID, denke ich. Florian |
Re: Beenden eines Prozesses mittels ACL verhindern
Habe diesen Source gefunden:
Delphi-Quellcode:
Und hier noch eine Beschreibung, wie man seinen Prozess unbeendbar macht, die ich auch nicht verstehe:
var
lpSecDesc: pointer; lpACL: PACL; dwSecurityInfo: DWORD; begin GetMem(lpSecDesc, SECURITY_DESCRIPTOR_MIN_LENGTH); InitializeSecurityDescriptor(lpSecDesc, 1); GetMem(lpACL, SizeOf(TACL)); InitializeACL(lpACL^, SizeOf(TACL), 2); SetSecurityDescriptorDACL(lpSecDesc, True, lpACL, False); dwSecurityInfo:= DACL_SECURITY_INFORMATION; SetKernelObjectSecurity(GetCurrentProcess, dwSecurityInfo, lpSecDesc); FreeMem(lpACL); FreeMem(lpSecDesc); end; Zitat:
|
Re: Beenden eines Prozesses mittels ACL verhindern
*push*
Tut mir Leid, musste sein ... |
Re: Beenden eines Prozesses mittels ACL verhindern
Kann wirklich keiner helfen?
Ich habe jetzt bestimmt schon 2 Stunden in etlichen Suchmaschienen gesucht, aber nichts außer die schon geposteten Sachen gefunden. Alle meine Delphi Bücher gehen auch nicht näher auf die API ein. |
Re: Beenden eines Prozesses mittels ACL verhindern
Jetzt habe ich noch AddDeniedACE gefunden. Nur die ganze Struktur ist umständlich. Da gibt es _ACL oder PACL, welcher ein Pointer auf _ACL ist, oder so ähnlich.
Wie kann ich das anwenden? Ich hab überhaupt keine Ahnung. |
Re: Beenden eines Prozesses mittels ACL verhindern
Hi Leute,
ich habe genau das gleiche Problem. Zitat:
Bei mir kann ich das Programm sowohl über das X als auch über den Taskmanager killen. :cry: PS: @Florian Bernd: Es gibt ein edit Feld rechts oben bei jedem Beitrag. Da muss man nicht immer einen neuen schreiben. :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 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