Nach jedem Compilervorgang ergibt das ausführbare Binary eine neue MD5 Prüfsumme, wieso?
-
Wenn ich in VS05 einen Quellcode compiliere und dann von der resultierenden EXE Datei eine MD5 Prüfsumme erstelle und dann die ausführbare EXE Datei wieder lösche und von vorne compiliere, dann erhalte ich eine komplett andere MD5 Prüfsumme.
Wieso ist das so?
Der Quellcode hat sich doch überhaupt nicht geändert?
Wieso ist die resultierende Binärdatei also beim zweiten Compilerdurchgang nicht identisch mit der ersten Binärdatei?
-
In den Quellcode werden wohl irgendwelche Zeitstempel reingetan.
Geh mal auf die Konsole und tipp dort mal ein:
fc /b Programm1.exe Programm2.exe
Dann siehst du, an welcher Stelle sich Bytes geändert haben. In C++-Programmen waren das, glaub ich, nur zwei Bytes. Bei .NET-Programmen wohl ein paar mehr.
-
Da wird ganz schön viel geändert.
Falls das die Opcodes sein sollen, dann sind das ganz schön viele.
Aufjedenfall fängt fc an im Konsolenfenster mehrere Seiten zu scrollen.Nur 2 Bytes sind es also schonmal nicht.
Es handelt sich übrigens um C Code.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
* Timestamps.
* Nameless Namespaces werden normalerweise mit zufällig generierten Namen umgesetzt -> zufällig ist jedes mal unterschiedlich.
* Der Optimizer von VC++ hat an einigen Stellen Timeouts drinnen. Das kann auch zu unterschiedlichen Ergebnissen führen.