Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#10

Re: Ermitteln ob ein Programm oder Prozess ein Dienst ist

  Alt 14. Aug 2006, 14:53
Zitat von Codewalker:
Okay, aber für die reine Erkennung, ob es ein Dienst ist, tut es da ja auch. Dann kann ich halt nur nicht mit Sicherheit den Dienstnamen ermitteln. Dn könnte man ja in solchen Zweifelsfällen auf einen leeren String setzen bzw. als StringList beide Werte zurückgeben. Außerdem darf die Schleife dann bei einem Fund nicht automatisch abgebrochen werden.
Sicher.

Zitat von Codewalker:
Okay, das lässt sich aber auch noch machen. ExtractFileNameFromSystemPath habe ich selbst geschrieben um Pfad wie %systemdir% und ähnliche aufzulösen. Kann ich bei Gelegenheit gerne posten (hab ich grad nicht zur Hand).
Hmm.

Zitat von Codewalker:
Das könnte man über die Module ermitteln. Bei einem normalen Programm ist das Modul 0 immer das Programm selber. Bei einem Dienst dürfte das doch dann nicht der Fall sein. Siehe auch hier Link am Ende des ersten Posts
Das müßtest du mir nochmal erklären, wenn es geht.

Zitat von Codewalker:
Was meinst du damit?
Ein Thread innerhalb eines Dienstes muß nicht als SYSTEM laufen, auch wenn der Dienst als SYSTEM gestartet wurde. Ergo kann das Token falsch sein, oder schlimmer, du kannst möglicherweise garnicht die Rechte haben um auf Ressourcen zuzugreifen, die du im obigen Code ansprichst.

Zitat von Codewalker:
Und das sagt mir auch nicht viel....
Daß einige Prozesse einen Elternprozeß haben ist dir klar? Für Dienste gibt es normalerweise einen einzigen Elternprozeß (services.exe) unter dem dann andere laufen (svchost.exe für DLL-Services usw.).
  Mit Zitat antworten Zitat