programm abfangen, bevor es startet?
-
hi,
gibt es eine möglichkeit ein programm quasi abzufangen, bevor es startet? also so, wie es z.b. die virenwächter machen. so eine art hook WH_APPLICATION_STARTUP also. gibts das ?
lw
-
Informier dich mal über Hooks.
-
hi,
ich zitiere mich mal eben selbst:
so eine art HOOK WH_APPLICATION_STARTUP
ich weis was hooks sind, sonst hätte ich das ja wohl nicht geschrieben.
wenn es so einen hook gibt, wie heißt er? (der hook, oder ?)lw
-
Dann müsstest du dich noch vor Windows klemmen und das geht nicht. Du kannst natürlich ständig überwachen ob der Prozess gestartet wurde und diesen dann terminieren aber so wie ich dich verstanden habe willst du das starten unterbinden... Warum eigentlich???
-
Wie wäre es mit Registry Shell Spawning? Du müsstest dann nur noch die CommandLine auslesen und gucken ob es der gewünschte Prozess ist, den du haben willst.
Schau unter HKEY_CLASSES_ROOT\exefile\shell\open\command. Standard ist dort "%1" %* eingetragen. Änder das doch mal in "C:\deinprogramm.exe" "%1" %* um. Dein Programm bekommt dann quasi die komplette Commandline des zu startenden Programms übergeben und muss logischerweise auch dieses via CreateProcess starten. Wichtig: Bevor du damit rumexperimentierst solltest du unbedingt besagten Registryschlüssel exportieren, damit im Notfall nichts schiefgehen kann.
Ach ja, diese Methode fängt nur EXE Dateien ab, die via ShellExecute ausgeführt werden (also wenn z.b. ne EXE mit dem Explorer startet). Direkte Ausführung via CreateProcess kannst du damit nicht abfangen. A Propos Hooks, schau mal unter www.codeguru.com. Da gibt es einen Super Artikel über Hooks (von irgendso einem Ivanov oder so ähnlich).
Oh, nochwas: Virenscanner benutzen eigene Treiber für systeminterne Dinge. :p
[ Dieser Beitrag wurde am 24.01.2003 um 20:38 Uhr von malfunction editiert. ]