AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dienste und PID?

Ein Thema von Mattze · begonnen am 31. Jul 2015 · letzter Beitrag vom 4. Aug 2015
Antwort Antwort
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Dienste und PID?

  Alt 1. Aug 2015, 12:33
Ich tippe trotzdem auf ein Rechteproblem. Vielleicht haben die Dienste, bei denen es geht, irgendein Flag aktiviert, das die anderen nicht haben, oder umgekehrt (UiAccess oder sonstwas). Hast du auch mal die UAC komplett deaktiviert? Nur um diese Fehlerquelle auszuschließen. Die UAC führt nämlich auch manchmal zu komischem Verhalten, das einen ganz schön in die Irre führen kann.

Auch interessant wäre, was passiert, wenn dein Programm (bzw. die entsprechende Routine) ebenfalls als Dienst läuft.

Geändert von Namenloser ( 1. Aug 2015 um 12:38 Uhr)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#2

AW: Dienste und PID?

  Alt 1. Aug 2015, 12:42
Hallo Namenloser,

auch die UAC usw.ist deaktiviert.
Sicher, ein Flag kann man nie ganz ausschließen.
Das wäre aber komisch, wenn es ausgerechnet ein paar System-Dienste nicht gesetzt hätten!

Es bleibt natürlich trotzdem die Frage, wie ich ohne PID an die Breite eines Dienstes rankomme.

Gruß
Mattze
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
984 Beiträge
 
Delphi 6 Professional
 
#3

AW: Dienste und PID?

  Alt 1. Aug 2015, 13:12
Hallo..

Viele Dienste, gerade Systemdienste werden als Sub-Dienst mit svchost gestartet. Diese Dienste können in deiner Enum zwar einzeln aufgelistet sein, haben aber keine PID, weil nur der Main-Dienst (svchost) eine bekommt.

Somit müsstest Du wohl nach einem anderen Weg suchen, um weitere Infos zu bekommen.

Vielleicht gibs ja eine API hierfür, den Tools wie der ProzessExplorer zeigen ja auch mehr Infos.
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#4

AW: Dienste und PID?

  Alt 1. Aug 2015, 13:55
Hallo,

der process explorer macht das nur für Prozesse. Da ist das "kein Problem". Das kriege ich auch, vielleicht sogar noch mehr - soweit man mit 32Bit im 64er System rumwerkeln kann.

Wie gesagt, das Problem sind die Dienste...

Ich habe gerade im Taskmanager nachgesehen. Tatsächlich!!! Viele Dienste haben auch da keine PID.
Die Dienste, die da eine haben, haben auch bei mir eine.

Also, wenn MS selber da nicht mehr liefert...
Nun ja, schaun mer mal, was man da noch so machen kann...

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Dienste und PID?

  Alt 1. Aug 2015, 13:59
Wozu brauchst du die PID denn?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

AW: Dienste und PID?

  Alt 1. Aug 2015, 17:40
Ich habe gerade im Taskmanager nachgesehen. Tatsächlich!!! Viele Dienste haben auch da keine PID.
Das sind die Dienste, die zur Zeit nicht laufen EnumServicesEx gibt dir auch eine Liste aller Services. Darunter auch die inaktiven oder deaktivierten. Das musst du filtern, wenn du nur die Laufenden haben willst.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#7

AW: Dienste und PID?

  Alt 1. Aug 2015, 18:06
Hallo,

wozu die PID?
Das ist genau das "Wozu" meiner Anfangsfrage.
Ich möchten rauskriegen, ob der Dienst nun 32- oder 64-Bit-breit ist.
Bei Prozessen nehme mich dazu IsWow64Process. Dazu muss man zuerst mal
OpenProcess machen und dazu braucht man die PID.
Ich wollte nun probieren, ob das bei Diensten vielleicht genauso funktioniert.

Übrigens habe ich eben noch ein Problem gesehen.
Über EnumServicesStatusEx und GetServiceExecutablePath kriegt man den Pfad der Dienste-Datei.
Wie üblich ist der oft %Systemroot%\System32\drivers\[Dienstdatei]. (Z. Bsp. c:\Windows\system32\drivers\cdrom.sys) Unter XP mag das auch noch gestimmt haben.
Unter Win 7 pro stimmt das nicht mehr! (Immer???)
(Z. Bsp.: Die Cdrom.sys liegt in:
C:\Windows\System32\DriverStore\FileRepository\cdr om.inf_amd64_neutral_0b3d0d1942ab684b\cdrom.sys
und
C:\Windows\winsxs\amd64_cdrom.inf_31bf3856ad364e35 _6.1.7601.17514_none_bdcf6151ba66f48b\cdrom.sys)
Also, man kann nicht mal so einfach die Dienste-Datei untersuchen nach 32 oder 64Bit.

Also, ich bin nun erst mal am Ende meiner Ideen angekommen.
Wie kriege ich denn nun die richtige Datei?

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

AW: Dienste und PID?

  Alt 1. Aug 2015, 18:16
IsWow64Process funktioniert definitiv auch bei Services. Dass du für bestimmte Services keine PID bekommst, liegt wie gesagt daran, dass der entsprechende Service momentan nicht ausgeführt wird.

Musst du denn auch für inaktive Services ermitteln können, ob es sich um einen 32 oder 64 Bit Prozess handelt? Bzw. was genau ist das Problem mit GetServiceExecutablePath? Konnte dir da nicht ganz folgen.

Für laufende Prozesse kannst du den Pfad hiermit bestimmen:
http://www.delphipraxis.net/160046-d...ermitteln.html
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: Dienste und PID?

  Alt 1. Aug 2015, 18:25
Sys Dateien sind ja auch eigentlich Treiber und keine Dienste.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:33 Uhr.
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