AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Beenden eines Prozesses mittels ACL verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Beenden eines Prozesses mittels ACL verhindern

Ein Thema von Zacherl · begonnen am 18. Sep 2005 · letzter Beitrag vom 10. Mai 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Beenden eines Prozesses mittels ACL verhindern

  Alt 18. Sep 2005, 12:33
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
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Beenden eines Prozesses mittels ACL verhindern

  Alt 18. Sep 2005, 13:06
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
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Beenden eines Prozesses mittels ACL verhindern

  Alt 18. Sep 2005, 13:24
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
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Beenden eines Prozesses mittels ACL verhindern

  Alt 18. Sep 2005, 13:30
Dann wühle dich mal von MSDN-Library durchsuchenSetKernelObjectSecurity 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.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Beenden eines Prozesses mittels ACL verhindern

  Alt 15. Mär 2006, 19:02
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
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Beenden eines Prozesses mittels ACL verhindern

  Alt 15. Mär 2006, 19:13
Habe diesen Source gefunden:

Delphi-Quellcode:
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;
Und hier noch eine Beschreibung, wie man seinen Prozess unbeendbar macht, die ich auch nicht verstehe:

Zitat:
Get a handle to the process you want to protect (GetCurrentProcess for the
current process).
Pass the handle to GetKernelObjectSecurity to get its DACL. Add a Denied
ACE to it specifying the current user's SID (or better yet, the well-known
SID for "Everyone"), and the PROCESS_TERMINATE right. Call
SetKernelObjectSecurity to update the process' DACL.
Nur was bewirkt dieser?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Beenden eines Prozesses mittels ACL verhindern

  Alt 16. Mär 2006, 19:08
*push*

Tut mir Leid, musste sein ...
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Beenden eines Prozesses mittels ACL verhindern

  Alt 19. Mär 2006, 16:30
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.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

Re: Beenden eines Prozesses mittels ACL verhindern

  Alt 21. Mär 2006, 14:09
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.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Beenden eines Prozesses mittels ACL verhindern

  Alt 29. Jul 2006, 15:40
Hi Leute,

ich habe genau das gleiche Problem.
Zitat von Florian Bernd:
Habe diesen Source gefunden:

Delphi-Quellcode:
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;
Ok compilieren tut er das. Doch funktionieren tut es nicht.
Bei mir kann ich das Programm sowohl über das X als auch über den Taskmanager killen.

PS: @Florian Bernd: Es gibt ein edit Feld rechts oben bei jedem Beitrag. Da muss man nicht immer einen neuen schreiben.
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:34 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