AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Programmausführung durch den Benutzer verhindern?
Thema durchsuchen
Ansicht
Themen-Optionen

Programmausführung durch den Benutzer verhindern?

Ein Thema von PeterPanino · begonnen am 25. Jul 2012 · letzter Beitrag vom 25. Jul 2012
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 18:02
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.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 18:43
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.
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 18:51
Es müsste doch so etwas wie einen "System-Hook" geben, der die Ausführung eines bestimmten beliebigen Programms gar nicht erst zulässt?
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 18:57
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.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 18:58
Meine Beobachtungen zeigen, dass sich der Virenscanner u. a. irgendwie vor den Prozessstart setzt.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 20:19
Mein erster Ansatz wäre mit SetWindowsHookEx und WH_SHELL.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
schlagzu

Registriert seit: 11. Okt 2010
86 Beiträge
 
Delphi XE Starter
 
#7

AW: Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 20:40
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.
  Mit Zitat antworten Zitat
schlagzu

Registriert seit: 11. Okt 2010
86 Beiträge
 
Delphi XE Starter
 
#8

AW: Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 20:55
habs gefunden http://www.delphipraxis.net/156364-d...-moeglich.html
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 21:30
Mmh, ich hab das Gefühl, dass das zuverlässig und effizient nur auf Kernel-Ebene geht. Gibt es denn keine Kernel-Hooks?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

AW: Programmausführung durch den Benutzer verhindern?

  Alt 25. Jul 2012, 23:37
SSDT Hooks sind seit Win7 64 bit und generell seitdem es das PatchGuard System im Kernel gibt, nicht mehr wirklich anwendbar, soweit ich weiß.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  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 18:48 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