Delphi-PRAXiS
Seite 9 von 11   « Erste     789 1011      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Process_Terminate funktioniert nicht (https://www.delphipraxis.net/155954-process_terminate-funktioniert-nicht.html)

Luckie 29. Nov 2010 20:21

AW: Process_Terminate funktioniert nicht
 
Ich dachte du hättest neue Benutzerkonten eingerichtet? Spielt er jetzt doch wieder unter einem Administratorkonto? Dir ist aber klar, dass er dann dein Programm einfach beenden kann und das war es dann wieder mit der Zeitlichen Begrenzung. Und glaub mir es wird nicht lange dauern, dann hat er es gefunden und wenn er einen Freund um Hilfe bitte, der sich damit auskennt.

Gerade probiert mit einem eingeschränkten Benutzerkonto, unter dem man so wie so nur arbeiten sollte) funktioniert es nämlich nicht mehr. Da werden nur alle offenen Anwendungen beendet.

speedy 29. Nov 2010 20:30

AW: Process_Terminate funktioniert nicht
 
Ja hab ich. Er hat einen Account mit Zeitbeschränkung zum spielen und einen Account zum surfen und arbeiten. Beides sind eingeschränkte Accounts ohne Admin-Rechte. Wenn das normal nicht laufen sollte ist es aber ne gute Frage wieso es auf der Kiste unter dem normalen Benutzer trotzdem funktioniert. Hab das zigmal ausprobiert und es wurde immer schön abgemeldet.

Das er es beenden kann weiß ich, da kommt er aber zum Glück nicht so schnell drauf. Falls doch, bleibt da wohl nur noch ein zusätzliches Programm (oder Dienst) der überwacht ob die Überwachung läuft und das Tool ggf. wieder startet.

Luckie 29. Nov 2010 21:14

AW: Process_Terminate funktioniert nicht
 
Halt, stopp. Ich habe gerade Abmelden mit Runterfahren verwechselt. Abmelden sollte gehen.

Assarbad 29. Nov 2010 21:20

AW: Process_Terminate funktioniert nicht
 
Zitat:

Zitat von speedy (Beitrag 1064893)
Wofür das mit $FFFF... hab ich von hier: http://www.delphi-library.de/topic_W...en_8272,0.html

:shock: ... typischer Fall von Cargo Cult Programming, würde ich sagen.

speedy 29. Nov 2010 21:33

AW: Process_Terminate funktioniert nicht
 
Ja dann wär die Frage ja geklärt ;)

Hab mir das mal mit dem Dienst (der als Local System läuft) überlegt, der die Zeitüberwachung "schützt". Müsste da ja quasi zuerst prüfen ob der entsprechende Benutzer gerade angemeldet ist (nur wie ist die Frage... über ein Programm den aktuellen Benutzer auszulesen ist ja kein Thema aber als Service?), anschließend ob die Überwachung läuft und wenn nicht den Prozess mit sowas wie CreateProcessAsUser starten. Hab da zum CreateProcessAsUser nur gelesen, dass man dazu das Benutzerkennwort braucht. Würde dann natürlich schief gehen, wenn das Passwort mal geändert werden sollte.

Luckie 29. Nov 2010 21:37

AW: Process_Terminate funktioniert nicht
 
Zitat:

Zitat von speedy (Beitrag 1064909)
(nur wie ist die Frage... über ein Programm den aktuellen Benutzer auszulesen ist ja kein Thema aber als Service?)

Forensuche.

Zitat:

Hab da zum CreateProcessAsUser nur gelesen, dass man dazu das Benutzerkennwort braucht. Würde dann natürlich schief gehen, wenn das Passwort mal geändert werden sollte.
Das wäre ja auch eine ziemliche Sicherheitslücke, wenn man einem Benutzer einfach so einen Prozess unterschieben könnte. Stelle dir vor du könntest einen Administrator einen Prozess unterschieben, der liefe dann im Kontext des Administrator mit allen Rechten und Privilegien.

Assarbad 29. Nov 2010 21:42

AW: Process_Terminate funktioniert nicht
 
Zitat:

Zitat von Luckie (Beitrag 1064910)
Das wäre ja auch eine ziemliche Sicherheitslücke, wenn man einem Benutzer einfach so einen Prozess unterschieben könnte. Stelle dir vor du könntest einen Administrator einen Prozess unterschieben, der liefe dann im Kontext des Administrator mit allen Rechten und Privilegien.

Irrtum, und vor allem geht es ;)

Ein Dienst ist Teil der TCB, wie du wissen solltest. Und als solcher (und mit SYSTEM-Rechten) kann man sich auch ein Token selberbasteln ;) ... ganz ohne Paßwort (zugegebenermaßen ist das im Netzwerk meines Wissens nach nicht viel wert).

CreateProcessAsUser basiert übrigens selber auf einem Dienst ("Zweitbenutzeranmeldung" oder wie das Ding heißt ..., wenn ich mich recht entsinne).

Luckie 29. Nov 2010 21:43

AW: Process_Terminate funktioniert nicht
 
Echt? Das überrascht mich jetzt aber. Aber gut, man lernt nie aus.

speedy 29. Nov 2010 21:45

AW: Process_Terminate funktioniert nicht
 
Das is richtig, aber hat ein Dienst, der standardmäßig als Local System läuft, nicht auch sämtliche Rechte und Privilegien wie ein Administrator? Abgesehen von der Interaktivität mit dem User-Desktop. Ein Programm das direkt vom Dienst aufgerufen wird erbt ja quasi dann die Local System Rechte.

Oder bring ich da jetzt was durcheinander?

Assarbad 29. Nov 2010 21:51

AW: Process_Terminate funktioniert nicht
 
Zitat:

Zitat von speedy (Beitrag 1064914)
Das is richtig, aber hat ein Dienst, der standardmäßig als Local System läuft, nicht auch sämtliche Rechte und Privilegien wie ein Administrator? Abgesehen von der Interaktivität mit dem User-Desktop. Ein Programm das direkt vom Dienst aufgerufen wird erbt ja quasi dann die Local System Rechte.

Nein, du hast recht. Aber ab Vista gibt es noch ein kleines anderes Problem. Stichwort: Session Separation. ... da wird es dann schon relativ kompliziert aus einem Dienst etwas in den Benutzerdesktop zu injizieren (unmöglich ist es aber nicht).

Zitat:

Zitat von Luckie (Beitrag 1064913)
Echt? Das überrascht mich jetzt aber. Aber gut, man lernt nie aus.

Nebbett hatte glaube ich auch ein Beispiel in seinem Buch zur NT/2000 Native API, falls du nachlesen willst. Schick ggf. ne PM (oder Email).


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 Uhr.
Seite 9 von 11   « Erste     789 1011      

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