Prozess überwachen



  • Hallo,

    ich möchte ein fremdes Programm unter WinXP überwachen.

    Mit

    1. EnumProcesses( dwProcIdentifiers, sizeof( dwProcIdentifiers ), &dwSize );

    2. EnumProcessModules( hProcModule,
    hModules,
    sizeof( hModules ),
    &dwModuleSize );

    lese ich die Rechte aus und bekomme diese ausgespuckt:

    SeChangeNotifyPrivilege
    SeLoadDriverPrivilege
    SeUndockPrivlege
    SeImpersonatePrivilege
    SeCreateGlobalPrivilege

    Sind die Rechte damit vollständig beschrieben oder muss ich noch etwas beachten? Wie kann ich die Aktivitäten des Prozesses überwachen, speziell eine Suche nach anderen laufenden Prozessen?

    Danke im voraus.



  • Was verstehst Du unter "überwachen"?

    Feststellen was es sich beendet?
    Dann einfach den Prozess mit OpenProcess und SYNCHRONISE öffnen und mit WaitForSingleObject warten, bis er sich beendet hat.



  • Ich will feststellen ob das Programm Dinge tut die ich nicht will, wie:

    a) andere Prozesse abfragen
    b) Speicher außerhalb des zugewiesenen Bereichs lesen



  • Das geht nur mit API-Hooks... dem Prozess die Rechte entziehen und in einer eigenen Logon-Session laufen lassen (fast wie eine Sandbox).



  • Danke für die Antwort.

    Leider ist mir noch nicht ganz klar was die API-hooks und eine Logon-Session ist. Habe mich zwar eingelesen, dauert wohl noch ein bißchen bis ich da durchblicke.

    Letztlich müssten doch die Sicherheitsmechanismen von Windows gewährleisten, dass ein Programm nicht den PC ausspähen kann. Trotzdem ist es ohne weiteres möglich den Speicher von anderen Prozessen zu durchsuchen und eine Prozessliste abzufragen.

    Wenn ich eine Client-Anwendung habe die sich regulär mit einem Server austauscht, könnte es ja sein, dass Daten über die Verbindung geschmuggelt werden. Würde ich zur Überwachung ständig über alle Ports laufen, oder reicht es die offenen zu checken? Gibt es vielleicht Opensource Firewalls die ich mir anschauen kann?

    Gibt es sowas wie Systrace für UNIX für Windows?



  • gecko schrieb:

    Letztlich müssten doch die Sicherheitsmechanismen von Windows gewährleisten, dass ein Programm nicht den PC ausspähen kann. Trotzdem ist es ohne weiteres möglich den Speicher von anderen Prozessen zu durchsuchen und eine Prozessliste abzufragen.

    Nein, ist es nicht. Dies ist nur möglich, wenn Du den Prozess mit Admin-Rechten gestartet hast! Und dann wirst Du ja hoffentlich wissen, was Du tust!
    Mit Admin rechten kann man (bis XP) alles tun und lassen, was man sich nur vorstellen kann.
    Mit normalen Benutzerrechten geht dies nicht.



  • Also ich kann hier auf einem Konto mit eingeschränktem Zugriff mit der Shareware von BNF Soft Speicher auslesen und auch mit dem Process Viewer Prozesse auslesen.

    Ist der Logon unter einem Konto äquivalent mit Prozess als User/Admin starten?


Anmelden zum Antworten