![]() |
Festplatte überwachen
Hi DPler
Ich hab mal eine Frage wie kann ich die Festplatte überwachen? D.h. Wenn ein Programm eine Datei erstellt/ändert bzw. zugreift/liest möchte ich das mein Programm bevor das passiert und nachdem das passiert ist benachrichtigt wird. Kleines Bsp.: FremdesProg will auf eine Datei zugreifen, MeinProg wird benachrichtigt (FremdesProg muss warten), MeinProg scannt die Datei und sagt dann ok, erst dann kann das FremdeProg auf die datei zugreifen (lesen, schreiben), dann kann das FremdeProg alles mit der datei tun was es will, bis das FremdeProg die Datei schliesst, dann muss ich wieder benachrichtigt werden. So ich hoffe ihr habt mich verstanden :mrgreen: |
Re: Festplatte überwachen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich habe mal ein Tool geschrieben mit hilfe von Muetze1 das alle Files die ausgewählt wurden und in einer ListBox stehen oder so überwacht und dann wenn etwas verändert wurde in einen anderen Ordner kopiert. Hier mal das Programm. Vlt. hilft es dir ja! |
Re: Festplatte überwachen
Zitat:
|
Re: Festplatte überwachen
Oder alle Befehle hooken, mit welchen man auf Dateien zugreifen kann.
z.B. CreateFile und CloseFile. Diese beiden (natürlich gibt's auch noch andere) so umleiten, daß zuerst deine Funktionen zum Prüfen aufgerufen werden und diese anschließend CreateFile und CloseFile aufrufen ... das andere Programm müßte dann ja zwangsläufig solange warten, bis deine Bearbeitung fertig ist? |
Re: Festplatte überwachen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hatte da mal vor längerer Zeit was programmiert
zuerst brauchst du ![]() Alternativ einen (Ring0) ntoskrnl.NtCreateFile hook :) |
Re: Festplatte überwachen
Zitat:
|
Re: Festplatte überwachen
Zitat:
//Edit: hab mir jetzt mal kurz dein Prog. angeschaut. Wenn ich des richtig gesehen hab dann tust du einfach bei einer bestimmten dateiliste immer wieder die größe auf gleichheit überprüfen. Ich möchte aber die ganze Festplatte überwachen. Außerdem muss des fremdprog. dabei nicht warten und und und, also leider nichts brauchbares für mich. trotzdem danke Zitat:
Bzw. was kann ich damit genau machen bzw. wie mache ich des? Zitat:
|
Re: Festplatte überwachen
Mit dem Treiber klinkst du dich zwischen Windows und dem tatsächlichen Schreiben auf doe festplatte ein. Ist aber nicht trivial. Vorraussetzung sind detailierte Kenntniss ein C, der Treiberentwicklung, des VC und des DDK. Mit Delphi hast du keine Chance, da was zu erreichen.
|
Re: Festplatte überwachen
Zitat:
weil ich kann nur ein bisschen C aber an Treiberentwicklung ist da nicht zu denken Also weiss jemand wie des mit dem Hook geht? |
Re: Festplatte überwachen
Zitat:
|
Re: Festplatte überwachen
Ein Beispiel für einen USerMode hook (NtCreateFile) hab ich weiter oben schon gepostet.
Ein Treiber wäre dann auch nur ein Kernelmode hook. Man kann auch ohne weiteres mit Delphi so einen Kernel hook machen, und soagr Treiber programmieren. |
Re: Festplatte überwachen
Zitat:
![]() |
Re: Festplatte überwachen
Nur mit Delphi gehts nicht, aber in Pascal mit Delphi und VisualStudio installeirt schon. (bzw einfach die richtigen Compiler)
Nico ging ja nur davon aus, dass es mit Delphi alleine nicht geht, sollte er gemeint haben, dass man in Pascal keinen Treiber programmieren kann hat er halt unrecht.
Delphi-Quellcode:
Hier sogar ein Delphi Driver Developement Kit
//Here the simplest system driver example on pascal (must be compiled with Delphi 3 compiler)
unit Driver; interface function DriverEntry(DriverObject, RegistryPath: pointer): integer; stdcall; implementation function DbgPrint(Str: PChar): cardinal; cdecl; external 'ntoskrnl.exe' name '_DbgPrint'; function DriverEntry(DriverObject, RegistryPath: pointer): integer; begin DbgPrint('Hello World!'); Result := -1; end; end. //And make file to compile and link this //dcc32.exe -JP -$A-,B-,C-,D-,G-,H-,I-,J-,L-,M-,O+,P-,Q-,R-,T-,U-,V-,W+,X+,Y - Driver.pas //linker from MSVC //link.exe /DRIVER /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /FORCE:UNRESOLVED /ENTRY:DriverEntry$qqspvt1 Driver.obj ntoskrnl.lib /out:Driver.sys ![]() Auch wenn da einige Tricks/Hacks bei sind, funktionieren sollte es ^^ |
Re: Festplatte überwachen
ahm also des mit dem treiber ist eher nichts für mich also bitte *back to topic*
@brechi: sry, hab des irgendwie übersehen. ich werds mir wenn ich daheim bin mal anschauen |
Re: Festplatte überwachen
@brechi: ist es also jetzt doch mögloch mit dem Delphi Driver Developement Kit eien Treiber zu schreiben.
Wenn ich jetzt zum beispiel einen K-Mode-Treiber schreiben will, was muß ich da beachten damit ich es mit meinem Delphi programm nutzen kann. Im prinziep könnte ich diesen ![]() Hast du villeicht mehr solcher nützlichen links zu Treiber mit Pascal? |
Re: Festplatte überwachen
Moin Metal_Snake2,
damit hier nicht alles durcheinander geht, möchte ich Dich bitten für eigene Fragen auch eigene Threads aufzumachen. Alternativ könnte man aus Deinem Beitrag auch einen neuen Thread erstellen. Vielen Dank für Dein Verständnis. |
Re: Festplatte überwachen
ja bitte back to topic, ich brauch des
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 Uhr. |
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 by Thomas Breitkreuz