Dateien auf Veränderung prüfen

nik_

Admiral
Registriert
Sep. 2011
Beiträge
7.397
Hi,

ich würde gerne wissen, wie man am schnellsten größere Dateien ( alle > 500MB), daraufhin überprüfen kann, ob Datensätze geändert worden. Dabei ist es vor allem wichtig, dass man im Moment in diesen Dateien mit nem Hex-Editor rumwühlen kann wie man will, ohne das gesagt wird, dass etwas verändert wurde.

Gibt es da eine Möglichkeit? Ich meine, man könnte zwar nen hashwert über alles bilden, aber dann muss der der key ja so groß sein, wie die datei selber. und das prüfen und bilden des neuen hashes dauert ja. da bei jedem start eines programm, welche die datei benötigt, dieser erneut geprüft werden muss.
 
Das einfachste sind Hashes und die müssen nicht so lang wie die Datei sein, die bilden den Inhalt der Datei nur unidirektional auf einen Hash ab. Es wird lediglich eine Aussage getroffen ob etwas geändert wurde und nicht wo.

Aber 500MB hashen dauert seine Zeit...
 
ok, selbst wenn hashen am einfachsten wäre, es muss or jedem start des programms geprüft werden ob die dateien A bis X manipuliert worden. einige sind 500MB groß, andere 4GB. Das würde ja ewigkeiten dauern, bis da erstmal neu der hash gebildet wurde etc...

also gibt es eine schnellere variante?
 
Was ist denn die Idee dahinter?

Je nach Einsatzzweck könnte es auch reichen, einfach das Änderungsdatum zu prüfen. Aber da du das hier im Forum "Sicherheit" gepostet hast, gehe ich davon aus, dass dir das nicht reichen wird. Denn das Änderungsdatum kann man manipulieren.

Mit welcher Methode soll denn ein Programm feststellen können, ob eine Datei geändert wurde, ohne die Datei vollständig einzulesen?
 
naja, ich hätte daran gedacht nur bestimmte bereiche abzuchecken statt der ganze datei. also da wo die manipulationen sinn machen prüfen und da wo eine manipulation nichts bringt, nicht prüfen.
 
Man kann mehrere Methoden kombinieren. Ist der Zeitpunkt der letzten Änderung oder die Größe verschieden, braucht es keinen Hash, um zu ermitteln, dass die Datei geändert wurde. Den Hash kann man dann im Hintergrund aktualisieren, ohne den Programmstart aufzuhalten (ich würde die Prüfung ohnehin asynchron durchführen, um dem Anwender möglichst schnell die Gelegenheit zu geben, mit dem Programm zu arbeiten. Oder müssen alle Dateien immer geprüft werden?).

Wenn Du das Dateiformat kennst, kann man natürlich auch Hashes lediglich von Teilbereichen ermitteln, nur kann Dir hier keiner sagen, was die für Deinen Anwendungsfall beste Strategie ist, ohne dass Du konkrete Informationen lieferst.

100% sicher ist man bei einem Hash auch nicht, aber in den meisten Fällen reicht es (gibt auch verschiedene Verfahren für verschiedene Szenarien). Um einen direkten Vergleich kommst Du aber wohl kaum herum.
 
es geht um so genannte *.gcf files. dort sind halt ordner und dateien enthalten. die in den .gcf files enthaltenen dateien und ordner dürfen nicht verändert werden und das muss vor jedem programmstart geprüft werden. sind diese manipuliert, daf das programm nicht starten. da aber nicht bei jeder datei eine manipulation sinnvoll ist, muss man nicht jede datei überprüfen. das problem mit dem änderungsdatum ist, dass bei updates ebenfalls eine änderungen stattfinden kann.
 
Zurück
Oben