Der Wert der Dateiüberprüfungssumme wurde nach langer Zeit auf einem nicht verwendeten Laufwerk geändert

427
ng80092a

Ich habe ein Laufwerk mit gespeicherten Daten, das ich 3 Jahre oder länger nicht verwendet habe. Ich hatte dann viele Dateien mit Corz-Checksumme geprüft.

Jetzt mache ich eine Sicherungskopie der alten Daten auf einem anderen Laufwerk. Um sicher zu gehen, habe ich einen chkdskvollständigen Sektorscan durchgeführt, und es gab keine Probleme.

Ich habe auch die Prüfsumme jeder Datei überprüft und festgestellt, dass sich eine der ZIP-Dateien geändert hat, obwohl ich sicher bin, dass ich daran nichts geändert habe.

Ich habe die ZIP-Datei getestet, den Inhalt extrahiert und alles ist in Ordnung, aber ich kann nicht die Tatsache umgehen, dass es jetzt einen anderen Wert für die Prüfsumme hat.

checksums

Was könnte das verursachen? Und warum gibt der Test und die Extraktion keinen Fehler zurück?

In der ZIP-Datei wurde nur ein Element gespeichert, und ich bin mir 100% sicher, dass ich es nach der Prüfsumme nicht geändert habe. Kann jemand das erklären oder helfen, die Ursache zu finden?

1

1 Antwort auf die Frage

0
Kamil Maciorowski

Why does the test and extraction don't return an error?

Because the zip file is most certainly OK. Zip format uses CRC-32 to detect corruption and it's very unlikely to have a randomly altered file that passes this test.

For this reason I think it's the old checksum what is wrong. It was erroneously calculated years ago.


What could possibly cause this?

You may have experienced a software bug. Think there can be bugs that express themselves in certain circumstances only. On the other hand calculating a checksum is relatively straightforward. We can't really rule this out but I'd rather blame something else.

Cosmic ray. Or something else that made a single bit in your RAM flip, change its state. It was not a final checksum bit since the two checksums differ on many bits. I guess a bit flipped before or during the calculation, multiple operations were performed later and this single change affected the entire result. I can see md5 in your screenshot, I guess your checksum is MD5. It's a hash function; such functions are deliberately created (i.e. defined, chosen) in a way so when you flip a single bit in the given input half (on average) of the output bits also flip. The bit that flipped may not have been an input bit, it may have been some intermittent bit; still, no wonder the two sums are very different.

I mentioned cosmic ray but it's also possible your memory may not have been 100% reliable and a bit flipped without an external reason.

These things do happen. Few examples:

  1. This author writes about an executable file that started generating errors. It turned out the file in cache (RAM) was literally a bit different than the same file on disk.

  2. Using Memory Errors to Attack a Virtual Machine by Sudhakar Govindavajhala and Andrew W. Appel.

    Our attack works by sending to the JVM [Java Virtual Machine] a Java program that is designed so that almost any memory error in its address space will allow it to take control of the JVM. All conventional Java and .NET virtual machines are vulnerable to this attack.

  3. Artem Dinaburg registered domain names one bit different than various popular domains. Devices from all over the world visited these addresses.