AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Systemprozess von nicht Systemprozess unterscheiden
Thema durchsuchen
Ansicht
Themen-Optionen

Systemprozess von nicht Systemprozess unterscheiden

Offene Frage von "Assarbad"
Ein Thema von gandime · begonnen am 9. Mai 2010 · letzter Beitrag vom 12. Jan 2011
Antwort Antwort
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#1

Re: Systemprozess von nicht Systemprozess unterscheiden

  Alt 9. Mai 2010, 18:17
Hi!

Zitat von Delphi-Laie:
Zitat von rollstuhlfahrer:
An diesen kommt man über die Kommandozeile inkl. Parameter
Es geht doch hier um ein Programm und nicht um die (manuelle!) Bedienung einer Textkonsole!
Er meint damit die Kommandozeile, die verwendet wurde, um das Programm zu starten. Diese wird für jeden Prozess von Windows mitgespeichert und kann z.B. auch im Taskmanager angezeigt werden (passende Spalte hinzufügen).

Zitat von Delphi-Laie:
Zitat von rollstuhlfahrer:
Wodurch sich Systemprozesse noch von anderen Prozessen unterscheiden ist, dass der Firmenname auf "Microsoft Coporation" steht. Ich glaube auch, dass die Systemprozesse alle digital signiert sind und die meisten der frei rumlaufenden Viren/Trojaner/Bots nun eben mal nicht.

Also: Ein wirklich gutes Alleinstellungsmerkmal ist das Prüfen auf ein digitales Zertifikat und die Prüfung dieses Zertifikats. Wie man das allerdings anstellt, weiß ich nicht.
Ein wirklich gutes? Was ist mit den Diensten? Die müssen keinesfalls alle von Mikroweich stammen (kann man schließlich auch selbst programmieren), doch nach meinem Wissen laufen die regelmäßig im Kernelmodus! Müssenn die wirklich digital signiert sein?
Ein weiteres mögliches Merkmal ist die SID des Prozessbesitzers. Systemprozesse laufen meist im Kontext des Benutzers "SYSTEM" (SID: "S-1-5-18" siehe hier). Dies mag zwar nicht auf alle Prozesse zutreffen, aber auf den hier erfragten smss.exe trifft dies zu.

Zitat:
Ein nach meiner Beobachtung eindeutiges Unterscheidungsmermal ist z.B., daß die Kernelmodusprozesse - im Gegensatz zu den Usermodusprozessen - den Modulschnappschuß nicht a priori erlauben, sondern erst nach explizter Privileganforderung. Allerdings weiß ich nicht, wie man Modulanzahl 0 (eigentlich gar nicht möglich, die Exe muß als 1 Modul eigentlich immer zurückgeliefert werden) von einem abgewiesenen Modulschnappschuß unterscheiden kann.
Moment. Es gibt nur einen Prozess, der im Kernelmodus läuft und das ist der, der durch den Code von ntoskrnl.exe und den Treibern gespeist wird (und das ist nichteinmal ein richtiger Prozess...). Die anderen Prozesse laufen ALLE im Usermodus. Die Systemprozesse laufen "nur" unter einem authorisierten Benutzerkonto (z.B. oben genanntes "SYSTEM"-Konto).

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: Re: Systemprozess von nicht Systemprozess unterscheiden

  Alt 12. Jan 2011, 22:48
Ich bitte um Nachsicht, daß ich diese etwas angestaubte Diskussion noch einmal aufgreife!

Ein weiteres mögliches Merkmal ist die SID des Prozessbesitzers. Systemprozesse laufen meist im Kontext des Benutzers "SYSTEM" (SID: "S-1-5-18" siehe hier). Dies mag zwar nicht auf alle Prozesse zutreffen, aber auf den hier erfragten smss.exe trifft dies zu.
Bei der Beschäftigung mit dieser Materie bin ich auf ein weiteres Unterscheidungsmerkmal "Systemprozesse<->Nichtsystemprozesse" gestoßen, und zwar aus der API-Funktion GetSecurityInfo, bei der man nach der SID auch - als nächsten Parameter - die Gruppe gewinnen kann. Unter meinem Windows 2000 (wird später auf anderen, späteren NTx-Betriebsprogrammen noch genauer untersucht werden) liefert der Parameter "ppsidGroup" (wie gesagt, nach dem vorigen Parameter "ppsidOwner) bei den "Systemprozessen" den - noch zu transformierenden - String "SYSTEM" zurück, bei allen anderen auf meinem Windows 2000 "kein".

Also, wenn das (k)ein Zufall ist!

Geändert von Delphi-Laie (12. Jan 2011 um 22:52 Uhr)
  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 13:26 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