Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#9

Re: Prozess-Handles nur geringe Rechte erlauben

  Alt 16. Sep 2007, 12:16
Zitat von Apollonius:
Ich bin schockiert. Mit dem Demo-Code kriege ich nämlich ein Null-Handle. Irgendwelche Einwürfe von den WinAPI-Gurus?
Irritierend ist vor allem, dass wir in der gleichen Umgebung arbeiten und unterschiedliche Ergebnisse bekommen...
Das Null Handle ist schon in Ordnung!!
Du bekommst es, weil du ja vollen Zugriff haben willst, der Zugriff aber eingeschränkt wurde.

Der Taskmanager macht auch nichts anderes als TerminateProcess. Um das zu verhindern muss man einfach :
SetProcessHandleRights(PROCESS_ALL_ACCESS xor PROCESS_TERMINATE); schreiben. Schon kann man den Prozess nicht mehr beenden.

Das Problem bei der Sache ist jedoch, dass 90% der Windowsbenutzer als Administrator arbeiten. Administratoren haben das Debug-Privileg, welches IMMER volle Rechte für OpenProcess beschert - egal was die DACL sagt.
Selbst Leute, die nicht als Admin unterwegs sind, haben meist zum Programmieren das Debugprivileg eingeschaltet - die Gruppe DebuggerUsers oder andere. Für MSDevStudio 2003 war das noch zwingend.
Wenn selbst Admins ein Nullhandle bekommen, dann liegt es entweder daran, dass sie kein Debugprivileg haben oder das Privileg ist ausgeschalten. Privilegien haben die Attribute : vorhanden, eingeschaltet, eingeschaltet von Anfang an.

Debugprivilegien sind nicht notwendig, um mit Delphi oder anderen IDEs seine Programme zu debuggen. Sie sind eigentlich nur notwendig, um Prozesse anderer Benutzer zu debuggen, zB. Dienste.
Wer mehr über Debugprivilegien wissen will, der suche nach SE_DEBUG_NAME.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat