Info über svchost Prozesse

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Peter329.

    Info über svchost Prozesse

    Hi,

    es gibt im Windows zahlreiche Prozesse die durch svchost.exe angestoßen werden. Meist laufen diese Prozesse unter dem System.

    Jetzt habe ich mal spaßeshalber mein System angeschaut: da habe ich 78 svchost Prozesse gefunden, und die allermeisten laufen auch (wie es sich gehört) unter dem System. Aber es gibt auch VIER Prozesse, die unter meiner eigenen Userkennung laufen.

    Das gefällt mir ganz und gar nicht. Manche Viren verstecken sich nämlich hinter dem Namen svchost.exe. Zu erkennen sind solche betrügerischen Prozesse u.a. daran, dass sie unter der Userkennung laufen (also eben nicht unter dem System).

    Und natürlich möchte ich jetzt sehr gern wissen, ob es alles seine Richtigkeit mit diesen vier Prozessen hat. Ja, ich bin paranoid ... aber das ist ja vielleicht auch gar keine so schlechte Grundhaltung in der IT ... :)

    Als erste Näherung habe ich den Windows Task Manager verwendet. Aber leider komme ich damit nicht so recht weiter.

    Ich habe deshalb alle svchost Prozesse auf meinem Rechner ausgelesen ... jetzt kenne ich die PID der vier svchost Prozesse, die unter meiner Kennung laufen.

    VB.NET-Quellcode

    1. Dim pCount As Integer = 0
    2. Dim pList As Process() = Process.GetProcesses
    3. For Each p In pList
    4. Dim strOwner = GetLocalProcessOwner(p.Id)
    5. Dim HasExited = "N/A"
    6. Try
    7. HasExited = p.HasExited.ToString().Substring(0, 1)
    8. Catch ex As Exception
    9. End Try
    10. Dim totalProcessortime As TimeSpan = Nothing
    11. Try
    12. totalProcessortime = p.TotalProcessorTime
    13. Catch ex As Exception
    14. End Try
    15. Dim PrivateMemorySize64 = CInt(p.PrivateMemorySize64 / 1024)
    16. Dim VirtualMemorySize64 = CInt(p.VirtualMemorySize64 / 1024)
    17. Dim WorkingSet64 = CInt(p.WorkingSet64 / 1024)
    18. Dim MainWindowTitle = p.MainWindowTitle
    19. pCount += 1
    20. dgvProcessList.Rows.Add(pCount,
    21. p.ProcessName,
    22. p.Id,
    23. strOwner,
    24. HasExited,
    25. totalProcessortime,
    26. PrivateMemorySize64,
    27. VirtualMemorySize64,
    28. WorkingSet64,
    29. MainWindowTitle)
    30. ...


    Das resulierende Display hab ich angehängt. Es zeigt ganz zu Beginn die vier svchost Prozesse, die unter meiner UserId laufen.

    Leider kann ich aber mit den Daten nicht viel anfangen ... weil ich die Prozesse nicht mit den Daten aus dem Display des Task Managers in Beziehung setzen kann.

    Im Task Manager gibt es das Display "Details". Da habe ich zwar die PID ... und damit kann ich meine vier Prozesse zuordnen. Aber ansonsten gibt so gut wie keine Informationen und deswegen hilft mir das nicht viel.

    Im Display "Processes" des TaskManagers habe ich erfreulicherweise sehr viel mehr Informationen ... aber ich weiß nicht, welche der 78 Prozesse den 4 gesuchten Prozessen entsprechen, weil ich in diesem Display weder PID noch USERID habe ... mit der CPU Zeit kann ich schon gar nicht suchen, weil die ohne Bruchteile von Sekunden angezeigt wird, also 0 ist ... und mit dem Speicher komme ich ehrlich gesagt ebenfalls nicht weiter ...

    Also, hier meine Frage: Ich würde gern wissen, welche der 78 svchost Prozesse im TaskManager Display "Processes" meinen gesuchten 4 Prozessen entsprechen. Gibt es weitere Informationen, die ich dazu sinnvollerweise aus der Process.GetProcesses Liste extrahieren sollte (es gibt sehr viele Attribute .... aber ich habe bisher nix Passendes gefunden).

    Hmm ... ich hoffe, ich habe mein Anliegen verständlich machen können ... (ist halt diesmal leider nicht ganz so einfach ... :( )

    LG
    Peter

    P.S.: Natürlich könnte ich die vier Prozesse einfach abbrechen und gucken was passiert ... Methode Holzhammer ... aber so richtig wohl ist mir dabei nicht ... und deshalb möchte ich das lieber erst mal auf "koschere" Weise zu lösen versuchen ... :)
    Bilder
    • s 2021-06-06 16-11-250.jpg

      46,81 kB, 1.192×216, 57 mal angesehen
    • s 2021-06-06 16-19-451.jpg

      120,1 kB, 1.110×859, 56 mal angesehen
    Kann es sein, dass die etwas zu tun haben mit Programmen, die im Visual Studio laufen?
    ====
    Welches Betriebssystem und welches Studio hast Du?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()

    @Peter329

    Aus der Ferne mit viel Sonne. Es gibt eine Möglichkeit zu jedem Prozess im Taskmanager auch die Parameter zu ermitteln, mit der der Prozess gestartet wurde. Da hab ich aber nur VB6 Code zu. Nur hier im Urlaub hab ich kein Zugriff drauf. Mit ein wenig suchen im Internet wirst aber sicher fündig werden.
    Mfg -Franky-
    @Peter329 Ich muss meine Aussage präzisieren:
    Die Dinger heißen vshost und werden beim Studio 13 erstellt.

    Beim Studio 17 nicht mehr, und ich nehme an, beim Studio 19 ebenfalls nicht.
    Du hast da also was anderes auf dem Schirm.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Seit dem W10 Update von 19nochwas auf 20H2 zeigt der Taskmanager bei mir auch bissel was anderes als vorher.
    Wenn ich mir den Dienst dazu anzeigen lasse, dann gibt es einige Dienste doppelt im System. Die zweite Variante
    hat hinten angehangen immer ein _xxxxxxxx (x für eine Hexzahl). Ich prüfe aber mein System regelmäßig mit
    drei Virenscannern und zuletzt mit der neusten Desinfect von c't. Immer ohne Befund. Ich vermute das dies durch
    die Updates von MS zustande kommt.

    Für genauere Untersuchungen ist heise.de/download/product/sysinternals-suite-48696 empfehlenswert.
    Aktuelles Projekt: Z80 Disassembler für Schneider/Amstrad CPC :love:
    @Peter329

    Ist zwar VB6, zeigt dir aber den Weg wie du an weitere Infos zu den Prozessen kommst. activevb.de/tipps/vb6tipps/tipp0769.html Vllt siehst ja an den Parametern wer den entsprechenden Prozess svchost gestartet hat.
    Mfg -Franky-
    @-Franky- Hast Du Dir mal angesehen, für welche Windows-Versionen das entwickelt wurde?
    XP ist da das neueste, da hätte ich eigentlich kein rechtes Vertrauen zu.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wow ... das ist genau die Option, die ich gesucht habe !

    Jetzt weiß ich endlich, wie ein Prozess aufgerufen wurde. Die Aufrufe der ersten drei fraglichen svchost Prozesse habe ich als Beispiel angehängt.

    Was nutzt mir das? Ich weiß damit, dass die Prozesse aus der C:\WINDOWS.system32 aufgerufen wurde (und nicht aus irgend einer verpopelten Library !) Und außerdem sehe ich die Aufrufparameter ... Und nachdem ich jetzt auch noch die svchost.exe auf Virenfreiheit untersucht habe, bin ich eigentlich wieder recht zufrieden. Soweit man mit Windows halt zufrieden sein kann.

    Offengestanden, bin ich enorm erleichtert. Weil ich bisher eben keine Ahnung hatte, wie so ein Prozess gestartet wurde ! Im schlimmsten Fall gelingt es einem Hacker, ein paar Prozesse einzuschleusen, die sich dann vielleicht auch noch gegenseitig zeitversetzt neu starten, wenn sie abbrechen oder abgebrochen werden ... Jetzt habe ich wenigstens eine CHANCE so etwas so mitzubekommen ... :)

    LG
    Peter
    Bilder
    • s 2021-06-08 08-16-172.jpg

      11,7 kB, 451×77, 37 mal angesehen