Haben Verzeichnisse einen auslesbaren Hash-Wert?

AloneCobra

Cadet 4th Year
Dabei seit
Mai 2005
Beiträge
71
Hallo zusammen,

ich stöbere schon eine Weile im Netz habe aber bisher nichts brauchbares gefunden.
Eigentlich hat das ganze weniger etwas mit Windows als mit NTFS zu tun... Oder vielleicht doch, da es sich um Windows-systeme handelt.

Verzeichnisse haben ja verschiedene Attribute (Sicherheitseinstellungen, Freigaben, etc.) die man auslesen kann. Da es aber sehr aufwändig ist in einem Scan jedesmal alle Verzeichnisse zu scannen, auch wenn sich seit dem letzte Scan nichts geändert hat, kam ich auf die Idee, dass man doch die Hash-Werte vergleichen könnte, ob sich seit dem letzten Scan etwas geändert hat?

Weiß jemand ob Verzeichnisse solch einen Hash-Wert besitzen und wie man diesen auslesen kann?

Besten Dank im voraus :)
 
Hallo AloneCobra,

ist ein interessantes Problem, hab auch mal ein paar Minuten dazu im Netz gestöbert.

Also generell scheint es für Ordner keinen solchen Hash-Wert zu geben. Ist auch nachvollziehbar, schließlich ist ein Verzeichnis ein Objekt mit keinem eigenem Content, demzufolge kann kein Hash generiert werden.

Es gibt aber ein Tool von Microsoft namens File Checksum Integrity Verifier, das bei Aufruf eines Ordners dann alle Hashes der enthaltenen Dateien erstellt.

Meine Überlegung ist jetzt, diese Ausgabe in eine Txt-Datei umzuleiten und von diesem File dann einen "Gesamt"-Hash zu erzeugen. Wenn die Hashes der Files sich nicht geändert haben, ist auch der Gesamt-Hash-Wert immer gleich, so kannst du schnell feststellen, ob sich was geändert hat.

Das Tool von MS ist aber ein Kommandozeilen-Tool, du brauchst also eine Batch-Datei zum Abarbeiten:

fciv C:\Daten >C:\Hash.txt
fciv C:\Hash.txt


Mittels Windiff kannst du die Hash.txt mit einer älteren Version vergleichen und so feststellen, ob es Veränderungen gegeben hat. Wenn man die Batch noch so angleicht, das die Ergebnis-txt noch umbenannt wird, kannman den ganzen Prozess über einen Mausklick auf die Batch anstoßen.

PCB
 
Hallo PCB,

danke für die recht ausführliche Antwort. Mir geht es allerdings nicht um den Inhalt, sondern um die Verzeichnisse selber und welche Sicherheitseinstellungen dort gesetzt sind bzw wer einen trust auf das verzeichnis hat.
Wenn ich z.B. Verzeichnis "Test" auf einem Fileserver habe und dort sind die Gruppen "bla" und "blub" drauf berechtigt. Dann müsste der Hash-wert (oder gibt es auch sowas wie eine checksumme?) ein ander sein, als wenn nur die Gruppe "bla" berechtigung auf den Ordner hat.
 
Hallo AloneCobra,

achso, ok, das ging jetzt aus deinem Post nicht so ganz hervor, aber dafür hab ich ja jetzt ne Lösung zur Hand, falls einer danach fragt!;)

Also das mit den Sicherheitseinstellungen kannst du IMO vergessen, das ist nicht über Hash-Werte abzudecken.
Die NTFS-Zugriffsberechtigungen sind ja als Metadaten den eigentlichen Dateien zugeordnet und dies sind interne Verwaltungsstrukturen, die keine Größen oder Inhalte anzeigen bzw. sich diese abfragen lassen. Zumindest kenne ich dazu keine Möglichkeit.

Vielleicht kannst du da was machen mit den Befehlen cacls und xcacls, musst du mal etwas rumprobieren.

PCB
 
Wenn du alle Datei, die geändert, erstellt oder gelöscht werden, in einem FileSystemWatcher mitloggst?

David
 
Zurück
Top