Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Start eines Programms verhindern (https://www.delphipraxis.net/30808-start-eines-programms-verhindern.html)

OregonGhost 30. Sep 2004 17:13

Re: Start eines Programms verhindern
 
Kann man als Admin unter einem NT5-System nicht einfach nur bestimme Programme erlauben, oder bestimme Programme verbieten?
Ich weiß nicht, ob das unter W2K geht, aber ich hab' das vor kurzem für ein paar XP-Rechner gemacht, irgendwo in den lokalen Sicherheitsrichtlinien. Da kannst du erstmal einstellen, dass alle Anwendungen verboten sind, und dann erlaubst du wieder die, die eben doch laufen sollen. Und das aktivierst du dann alles für User, aber nicht für Administratoren und fertig. Da brauchst du doch kein Extraprogramm für und sicherer ist es so auch (weil die Programme wirklich nicht starten und es kann auch keiner dein Programm abschießen, weil's gar nicht läuft (c; )

novelly 30. Sep 2004 18:45

Re: Start eines Programms verhindern
 
hi,

ich würde mal so laienhaft behaupten das eigentlich nur ein hook in frage kommt, sowas was shellexecute oder createprocess zeug abfängt....

wie gesagt nur mal ins blaue gedacht!

schönen abend noch ! :cheers:

c113plpbr 30. Sep 2004 21:43

Re: Start eines Programms verhindern
 
@novelly: Genau, das ist die beste und warscheinlich 'sicherste' methode.
Dazu gibts auch nen beispiel, und zwar wird das gleich mit der Hook-Library mitgeliefert: http://www.madshi.net/
Lad dir dort die MadCollection runter, installier sie, und schau in den Ordner "... \Madshi\madCodeHook\Demos\system wide\VariousDlls", wo du eine Datei namens "HookProcessCreation.dpr" finden wirst ... die halt nurnoch compilieren, injezieren, und "Gott" spielen :mrgreen:
Der Quellcode ist eigentlich ziemlich logisch, sonst einfach hier fragen, oder mich fragen :mrgreen:

ich hoffe, dass dies dir weiterhilft

ciao, Philipp

Luckie 1. Okt 2004 13:06

Re: Start eines Programms verhindern
 
Zitat:

Zitat von c113plpbr
@novelly: Genau, das ist die beste und warscheinlich 'sicherste' methode.

Das ginge auch, ist aber bestimmt ufwendiger zu programmieren und ob es besser ist, ist die Frage. Jeder Hook belastet das System. Und wenn man das nicht richtig programmiert, dann kann man ganmz schnell sein System lahmlegen.

c113plpbr 1. Okt 2004 16:13

Re: Start eines Programms verhindern
 
Zitat:

Zitat von Luckie
Das ginge auch, ist aber bestimmt ufwendiger zu programmieren und ob es besser ist, ist die Frage. Jeder Hook belastet das System. Und wenn man das nicht richtig programmiert, dann kann man ganmz schnell sein System lahmlegen.

Ein Hook ist auch nur eine zusätzlich geladene DLL, die von eben allen Prozessen geladen wird, das tun die meisten Programme sowieso meist "en masse" ...
Klar, wenn man sowas nicht richtig programmiert, kriegt man ohne weiteres mal auch unter WinXP eine Bluescreen, aber soooviel kann da nicht schiefgehen, und wenn was schiefgeht, dann fixt man das halt, bis es funktioniert, bevor man das veröffentlicht, wenn überhaupt.

Und wo ihr grad von Diensten sprecht: Diese belasten das System auch, wenn nicht noch mehr (ständige abfragen auf alle existierenden prozesse oder fenster sind nicht ganz ohne ...). Außerdem kann so das Programm schon in der "wurzel" gekillt werden, denn um createprocess kommt man nicht so schnell rum ... (außer mit nem hook :mrgreen: )

FAlters Methode ist auch nicht die beste, da es ja auch noch neben shellexecute andere möglichkeiten gibt einen prozess zu erstellen ... (nagut, dazu muss natürlich dann erstmal nen programm laufen ... ^^)

ciao, Philipp

HW764 1. Okt 2004 16:35

Re: Start eines Programms verhindern
 
Ich stimme euch zu!

Gruss HW764

Luckie 1. Okt 2004 17:21

Re: Start eines Programms verhindern
 
Zitat:

Zitat von c113plpbr
Ein Hook ist auch nur eine zusätzlich geladene DLL, die von eben allen Prozessen geladen wird, das tun die meisten Programme sowieso meist "en masse" ...

Nur dass bei eienm Hook alle Systemnachrichten noch durch den Hook durchgeschleift werden und das bremmst das System aus.

Zitat:

Klar, wenn man sowas nicht richtig programmiert, kriegt man ohne weiteres mal auch unter WinXP eine Bluescreen, aber soooviel kann da nicht schiefgehen, und wenn was schiefgeht, dann fixt man das halt, bis es funktioniert, bevor man das veröffentlicht, wenn überhaupt.
Nein. Eine Bluescreen wird man nicht bekommen, aber ds System könnte sich ungewöhnlich verhalten.

Zitat:

Und wo ihr grad von Diensten sprecht: Diese belasten das System auch, wenn nicht noch mehr (ständige abfragen auf alle existierenden prozesse oder fenster sind nicht ganz ohne ...).
Nö. Ein Dienst ist auch nur eine weiterer geladener Prozess. Und das abfragen der Prozessliste macht man logischerweise in einem Thread mit der Priorität idle.

c113plpbr 1. Okt 2004 17:30

Re: Start eines Programms verhindern
 
@Luckie: Nein, du verstehst mich falsch. Es gibt einen großen unterschied zwischen Windows-Hooks und API-Hooks ... und ich sprach von einem API-Hook, der die CreateProcessA Funktion abfängt. Das funktioniert nicht so wie ein windowshook, und es kommen da auch keine messages an, es wird einfach STATT der ursprünglichen 'CreateProcessA'-funktion aus der 'Kernel32.dll' MEINE Funktion aufgerufen. In meiner Funktion kann ich dann entscheiden, ob ich die OriginalFunktion (also die aus der 'Kernel32.dll') aufrufen soll, oder es einfach lasse ...

ciao, Philipp


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.
Seite 3 von 3     123   

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