Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TaskWatch 1.0 (https://www.delphipraxis.net/46497-taskwatch-1-0-a.html)

Harry M. 25. Mai 2005 20:53


TaskWatch 1.0
 
TaskWatch 1.0

TaskWatch überwacht alle laufenden Prozesse Ihres PC's. Wird ein Programm gestartet,
bekommt der Anwender ein Konfigaratiosmenü in dem er wählen kann, ob dieser Prozeß
nur in dieser Sitzung, immer, oder nie ausführt werden darf.

Screenshots:
http://www.8ung.at/projetilware/TaskWatch%20(1).jpg
http://www.8ung.at/projetilware/TaskWatch%20(2).jpg

Download:
http://www.8ung.at/projetilware/TaskWatch.rar (426kb)

perle 26. Mai 2005 07:10

Re: TaskWatch 1.0
 
Hi an sich keine schlechte Idee.

Aber wenn ich einen Verbesserungsvorschlag machen darf, dann benutz bitte keinen Timer um abzufragen, ob ein neues Fenster geöffnet wurde. Das lässt sich z.B. mit Hooks viel besser lösen.

static_cast 26. Mai 2005 10:33

Re: TaskWatch 1.0
 
Hallo,

das Programm ist ja eine ganz interessante Sache, nur wie wird überwacht?

- Fängt das Tool den start eines Programms ab oder
- Wird das Programm gestartet und dein Tool merkt es dann ers wenn der Prozess läuft?

Beim dem zweiten genannten Fall wäre das Tool eigentlich total unnütz, wenn ich das so sagen darf, denn das (in diesem fall gehe ich von einem Bösen Programm aus) hätte ja schon längst schaden anrichten können oder dinge im System verändern.

Aber sonst wäre es wohl eine gute einsatzmöglichkeit bei Eltern auf ihrem PC um zu verhindern das Kinder irgendwelche Programme starten können.

Gruß,
Daniel

Harry M. 26. Mai 2005 11:01

Re: TaskWatch 1.0
 
Danke für Lob und Kritik.

Zitat:

Zitat von perle
Das lässt sich z.B. mit Hooks viel besser lösen.

Dann wirds aber auch koplizierter.

Zitat:

Zitat von static_cast
...das Programm ist ja eine ganz interessante Sache, nur wie wird überwacht?...
- Fängt das Tool den start eines Programms ab oder
- Wird das Programm gestartet und dein Tool merkt es dann ers wenn der Prozess läuft?

Beim dem zweiten genannten Fall wäre das Tool eigentlich total unnütz, wenn ich das so sagen darf, denn das (in diesem fall gehe ich von einem Bösen Programm aus) hätte ja schon längst schaden anrichten können oder dinge im System verändern.

Also ein Timer prüft, ob alle Processe die laufen "zulässig" sind. Ich würde auch schon gerne vor dem Starten den Processes ansetzten. Aber soweit reicht es leider noch nicht. Sicher kann man bis die Abfrage geklärt ist, oder der Process automatisch beendet wird Schaden anrichten. Aber der Schutz liegt vielmehr darin "vor ständig laufenden" Programmen. Nicht für jene, die nur für einen Bruchteil einer Sek. aktiv sind.

perle 26. Mai 2005 12:36

Re: TaskWatch 1.0
 
Zitat:

Ich würde auch schon gerne vor dem Starten den Processes ansetzten
Hooks ^^ Ich glaube es sind CBT Hooks mit denen das geht.

Ansonsten durch Hooken bestimmter API's wie z.b. CreateProcess etc

Olli 26. Mai 2005 12:39

Re: TaskWatch 1.0
 
Zitat:

Zitat von Harry M.
Zitat:

Zitat von perle
Das lässt sich z.B. mit Hooks viel besser lösen.

Dann wirds aber auch koplizierter.

...aber besser. Es ist doch besser dich ruft derjenige an, der etwas zu melden hat - als Metapher - als daß du ganz Deutschland abtelefonierst bis du denjenigen dran hast, der was zu melden hat. Oder?

Zitat:

Zitat von Harry M.
Also ein Timer prüft, ob alle Processe die laufen "zulässig" sind. Ich würde auch schon gerne vor dem Starten den Processes ansetzten. Aber soweit reicht es leider noch nicht.

Dafür würden deine Möglichkeiten im Usermode auch nicht ausreichen!

Was du bräuchtest wären (alle im DDK dokumentiert):
- PsSetCreateProcessNotifyRoutine (NT3/NT4/W2K/WXP/2K3)
- PsSetCreateThreadNotifyRoutine (NT4/W2K/WXP/2K3)
- PsSetLoadImageNotifyRoutine (W2K/WXP/2K3)
... sowie mindestens eine undokumentierte API, die ich jetzt nicht im Kopf habe. Ohne diese undokumentierte API bekommst du zwar Benachrichtigungen aber kannst den Prozess nicht vor dessen Ausführung killen. Die effektivste Methode, nämlich PsSetLoadImageNotifyRoutine() kannst du erst ab Windows 2000 einsetzen. Ansonsten bliebe dir noch eine letzte Methode, die zB von Bei Google suchenTrustNoExe eingesetzt wird - SSDT-Hooking bestimmter APIs um schon beim Laden des Images auch auf NT4-Systemen anzusetzen! Um es vorwegzunehmen: nein, es reicht nicht aus NtCreateProcess*() zu hooken, da man Prozesse auch anders erstellen kann. Einzig ein Image laden muß man immer um einen Prozess auszuführen (Forking geht natürlich auch anders ;) ...).
Fazit: nochmal neu Programmieren lernen (nämlich KM-Treiber - die sind was komplett anderes als Usermode-Programme oder auch Services)!

Zitat:

Zitat von Harry M.
Sicher kann man bis die Abfrage geklärt ist, oder der Process automatisch beendet wird Schaden anrichten. Aber der Schutz liegt vielmehr darin "vor ständig laufenden" Programmen. Nicht für jene, die nur für einen Bruchteil einer Sek. aktiv sind.

... im Bruchteil einer Sekunde kann Malware schon ziemlich viel Schaden anrichten.

@perle: vergiß es ... ohne KM-Treiber kommst du da nicht sinnvoll und "ganzheitlich" :mrgreen: weiter.

Harry M. 26. Mai 2005 12:45

Re: TaskWatch 1.0
 
Oh danke für die vielen Wegweiser. Mal sehen was ich damit umsetzten kann.

perle 26. Mai 2005 12:49

Re: TaskWatch 1.0
 
Zitat:

nein, es reicht nicht aus NtCreateProcess*() zu hooken, da man Prozesse auch anders erstellen kann
darum steht da ja auch CreateProcess etc. :)

Zitat:

@perle: vergiß es ... ohne KM-Treiber kommst du da nicht sinnvoll und "ganzheitlich" Mr. Green weiter.
schon, aber besser als seine Methode ist es allemal.
Kommt auch immer auf die Skills an die jeder Mitbringt.

Olli 26. Mai 2005 12:53

Re: TaskWatch 1.0
 
Zitat:

Zitat von perle
darum steht da ja auch CreateProcess etc. :)

Statt CreateProcessA/W ist dann aber NtCreateProcess und NtCreateProcessEx (ich denke mal *Ex reicht) konsequenter, weil die Win32-APIs ja auf letzteren aufsetzen ;)

Zitat:

Zitat von perle
schon, aber besser als seine Methode ist es allemal.
Kommt auch immer auf die Skills an die jeder Mitbringt.

Das stimmt wohl.

Nachtrag: NtCreateProcessEx() existiert erst ab Windows XP!!!
Und ich habe gerade nachgeschaut (in NTDLL), die benutzen verschiedene Service-Indices, also muß man auch beide hooken. Wie's auf Kernelebene aussieht, habe ich noch nicht nachgeschaut.

perle 26. Mai 2005 13:00

Re: TaskWatch 1.0
 
Zitat:

Statt CreateProcessA/W ist dann aber NtCreateProcess und NtCreateProcessEx (ich denke mal *Ex reicht) konsequenter, weil die Win32-APIs ja auf letzteren aufsetzen Wink
sofern es ein NT-System ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr.
Seite 1 von 2  1 2      

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