Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Programmausführung durch den Benutzer verhindern? (https://www.delphipraxis.net/169516-programmausfuehrung-durch-den-benutzer-verhindern.html)

PeterPanino 25. Jul 2012 18:02

Programmausführung durch den Benutzer verhindern?
 
Hallo! Z.B. Virenprogramme können die Ausführung eines Programms verhindern. Kann ich ebenso von einem Delphi-Programm aus den Start eines x-beliebigen Programms verhindern?

Beispiel: Obwohl der Anwender im Explorer auf Programm XY doppelklickt, wird es nicht gestartet, sondern mein Programm wird stattdessen benachrichtigt. Mein Programm kann dann z.B. etwas tun (z.B. ein anderes inkompatibles Programm beenden) und dann Programm XY starten.

Popov 25. Jul 2012 18:43

AW: Programmausführung durch den Benutzer verhindern?
 
Die Frage stellte sich mir auch mal. Ich hatte vor über 10 Jahren einen 0190-Dialer-Killer programmiert der nach einer sehr einfachen aber auch sehr wirkungsvollen Art Dialer erkannte. Dabei bin ich nicht tief in das System eingedrungen, sondern reagierte auf gestartete Programme und beendete sie sofort, d .h. ich hab die aktuelle Prozesse überwacht und etwa 1/10 Sekunde nach dem Start das Programm analysiert und bei Bedarf beendet.

Nun bin ich auch ehrlich, bei 0190 Dialern reichte die Zeit, denn die Zeit war zu kurz um Schaden anzurichten. Ich hab das Programm paar Jahre selbst genutzt und in der Zeit keinen erfolgreichen Dialerstart erlebt aber sehr viele Kills. Bei Windows 98 und IE war es für Dialer sehr einfach auf das System zu kommen. Rechne ich noch die Starts der Dialer die mir zum Testen zugeschickt wurden, so habe ich durch Selbstversuch über 100 Dialer ausgeführt.

Allerdings arbeiten Virenscanner doch anders.

PeterPanino 25. Jul 2012 18:51

AW: Programmausführung durch den Benutzer verhindern?
 
Es müsste doch so etwas wie einen "System-Hook" geben, der die Ausführung eines bestimmten beliebigen Programms gar nicht erst zulässt?

BUG 25. Jul 2012 18:57

AW: Programmausführung durch den Benutzer verhindern?
 
Hi,

das hier könnte ein Startpunkt sein. Scheint aber auf einem Treiber zu basieren.

Die Antivirenhersteller haben es in so fern einfacher, da sie eh schon bis über über beide Ohren in der System stecken.

Popov 25. Jul 2012 18:58

AW: Programmausführung durch den Benutzer verhindern?
 
Meine Beobachtungen zeigen, dass sich der Virenscanner u. a. irgendwie vor den Prozessstart setzt.

ConnorMcLeod 25. Jul 2012 20:19

AW: Programmausführung durch den Benutzer verhindern?
 
Mein erster Ansatz wäre mit SetWindowsHookEx und WH_SHELL.

schlagzu 25. Jul 2012 20:40

AW: Programmausführung durch den Benutzer verhindern?
 
Also ich hatte es mal mit eine dll gemacht, die in jeden Prozess injected wurde und dann den Programmaufruf abgefangen hat um in diesen Prozess die dll wieder zu injecten. Hatte das Problem das das System etwas langsam wurde dadurch. Ich kann die mal raussuchen.

schlagzu 25. Jul 2012 20:55

AW: Programmausführung durch den Benutzer verhindern?
 
habs gefunden :D http://www.delphipraxis.net/156364-d...-moeglich.html

PeterPanino 25. Jul 2012 21:30

AW: Programmausführung durch den Benutzer verhindern?
 
Mmh, ich hab das Gefühl, dass das zuverlässig und effizient nur auf Kernel-Ebene geht. Gibt es denn keine Kernel-Hooks?

Zacherl 25. Jul 2012 23:37

AW: Programmausführung durch den Benutzer verhindern?
 
SSDT Hooks sind seit Win7 64 bit und generell seitdem es das PatchGuard System im Kernel gibt, nicht mehr wirklich anwendbar, soweit ich weiß.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz