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/)
-   -   Delphi Datei-Operationen erkennen und unterbinden (https://www.delphipraxis.net/109598-datei-operationen-erkennen-und-unterbinden.html)

anro78 4. Mär 2008 10:30


Datei-Operationen erkennen und unterbinden
 
Kennt jemand einen Weg, wie man Datei-Operationen erkennt (Umbenennen, Löschen, Anlegen) und wie man diese dann auch verhindern kann? Der erste Teil der Lösung über das Erkennen solcher Operationen wurde ja schon oft diskutiert, obwohl bei allen Lösungen nur das Verzeichnis der Änderung zurück gegeben wird, nicht aber die Datei, die darin manipuliert wurde? Aber wie verhindere ich eine solche Dateioperation? Mir geht es hier vor allem um das Erkennen und Verhindern des Löschens einer Datei.

mkinzler 4. Mär 2008 10:32

Re: Datei-Operationen erkennen und unterbinden
 
Warum verwendest du keine ACLs?

taaktaak 4. Mär 2008 10:36

Re: Datei-Operationen erkennen und unterbinden
 
@ mkinzler: Und die Access Control List kann man aus einem Delphiprogramm beeinflussen? Hat darauf nicht das Betriebssystem exklusiven Zugriff??

mkinzler 4. Mär 2008 10:42

Re: Datei-Operationen erkennen und unterbinden
 
in einem normalen Anwenderprogramm kann sich zwar benachrichtigen lassen aber das Löschen nicht verhindern. Will man das Löschen verhindern sollte man die Datei schreibschützen oder das OS bemühen

taaktaak 4. Mär 2008 10:46

Re: Datei-Operationen erkennen und unterbinden
 
Ok, Danke, verstanden

anro78 4. Mär 2008 13:01

Re: Datei-Operationen erkennen und unterbinden
 
Zitat:

Zitat von mkinzler
in einem normalen Anwenderprogramm kann sich zwar benachrichtigen lassen aber das Löschen nicht verhindern. Will man das Löschen verhindern sollte man die Datei schreibschützen oder das OS bemühen

Das OS bemühen klingt gut, aber wie?

mkinzler 4. Mär 2008 13:16

Re: Datei-Operationen erkennen und unterbinden
 
Durch Setzen von Zugriffsberechtigungen (ACLs)

anro78 4. Mär 2008 13:24

Re: Datei-Operationen erkennen und unterbinden
 
Zitat:

Zitat von mkinzler
Durch Setzen von Zugriffsberechtigungen (ACLs)

Aber die gelten dann doch systemweit, ich möchte eigentlich nur, dass mein Programm unter bestimmten Umständen das Löschen einer Datei unterbindet.

mkinzler 4. Mär 2008 13:25

Re: Datei-Operationen erkennen und unterbinden
 
Unter welchen Umständen den?

anro78 4. Mär 2008 13:58

Re: Datei-Operationen erkennen und unterbinden
 
Zitat:

Zitat von mkinzler
Unter welchen Umständen den?

Wenn eine Konfiguration in der Software es so will, z.b. dass bestimmte Datentypen geschützt werden.

shmia 4. Mär 2008 14:04

Re: Datei-Operationen erkennen und unterbinden
 
Zitat:

Zitat von anro78
ich möchte eigentlich nur, dass mein Programm unter bestimmten Umständen das Löschen einer Datei unterbindet.

Seltsame Forderung, die bestimmt nur deshalb besteht, weil an irgendeiner anderen Stelle etwas nicht in Ordnung ist.
Also man frickelt an Symtomen rum, anstatt saubere Verhältnisse zu schaffen.

Aber sei's drum; du kannst eine Datei temporär vor dem Löschen schützen, in dem du sie öffnest:

Delphi-Quellcode:
var
  protfilestream : TFileStream;
begin
  protfilestream := TFileStream.Create(dateiname, fmOpenRead or fmShareDenyNone);
  // jetzt ist die Datei vor dem Löschen geschützt
  ....
  // bis der Stream freigegeben wird
  protfilestream.Free;

anro78 4. Mär 2008 15:05

Re: Datei-Operationen erkennen und unterbinden
 
Zitat:

Zitat von shmia
Zitat:

Zitat von anro78
ich möchte eigentlich nur, dass mein Programm unter bestimmten Umständen das Löschen einer Datei unterbindet.

Seltsame Forderung, die bestimmt nur deshalb besteht, weil an irgendeiner anderen Stelle etwas nicht in Ordnung ist.
Also man frickelt an Symtomen rum, anstatt saubere Verhältnisse zu schaffen.

Aber sei's drum; du kannst eine Datei temporär vor dem Löschen schützen, in dem du sie öffnest:

Delphi-Quellcode:
var
  protfilestream : TFileStream;
begin
  protfilestream := TFileStream.Create(dateiname, fmOpenRead or fmShareDenyNone);
  // jetzt ist die Datei vor dem Löschen geschützt
  ....
  // bis der Stream freigegeben wird
  protfilestream.Free;


Das ist mir schon klar, aber du verstehst mich glaube ich falsch. Mein Programm soll je nach Konfiguration durch den Benutzer, bestimmte Dateien vor dem Löschen schützen, ohne die Zugriffsrechte auf der entsprechenden Dateien anzufassen. Windows macht das ja auch so mit den Systemdateien im Windows-Verzeichnis, überwacht diese und stellt sie ggf. wieder her. Ich will aber lediglich vor dem Löschen schützen, ohne die ACL zu bemühen.

mkinzler 4. Mär 2008 15:08

Re: Datei-Operationen erkennen und unterbinden
 
Und das kannst du wie schon erwähnt mit einem normalen Programm nicht!

shmia 4. Mär 2008 15:13

Re: Datei-Operationen erkennen und unterbinden
 
Zitat:

Zitat von anro78
Das ist mir schon klar, aber du verstehst mich glaube ich falsch. Mein Programm soll je nach Konfiguration durch den Benutzer, bestimmte Dateien vor dem Löschen schützen, ohne die Zugriffsrechte auf der entsprechenden Dateien anzufassen.

Oder du verstehst mich falsch.
Es gibt absolut keinen Grund, irgendwelche Dateien vor dem Löschen auf diese Art und Weise zu schützen.
Entweder ein Benutzer darf bestimmte Dateien löschen oder er darf es nicht.
Wenn er versehentlich eine Datei gelöscht hat, kann er sie immer noch aus dem Papierkorb holen.
Wenn er ohne Papierkorb löscht - selber Schuld, Dummheit muss bestraft werden.

Bei den Systemdateien sieht das etwas anderst aus: das Betriebssystem schützt sich selber gegen versehentliche oder absichtliche Zerstörung und das ist so auch in Ordnung.

Ausserdem habe ich dir doch gezeigt, wie man Dateien vor dem Löschen schützen kann, OHNE Zugriffsrechte zu verändern.

mkinzler 4. Mär 2008 15:18

Re: Datei-Operationen erkennen und unterbinden
 
Zitat:

Ausserdem habe ich dir doch gezeigt, wie man Dateien vor dem Löschen schützen kann, OHNE Zugriffsrechte zu verändern.
Also einfache eine Suche über alle laufwerke machen und alle Dateien eines bestimmten Typs öffnen :zwinker:

generic 4. Mär 2008 16:14

Re: Datei-Operationen erkennen und unterbinden
 
wenn du solche funktionen haben willst, wirst du wohl das os hooken müssen.
bessere viren und trojaner schützen sich auch so.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:15 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