Forum: PC-Programmierung Visual C++ 6: Zeitstempel im exe-File


von Jörg Günzel (Gast)


Lesenswert?

Hallo,
wenn ich dasselbe Projekt zu verschiedenen Zeitpunkten kompiliere, 
treten bei der resultierenden exe-Dateien im Binärvergleich einige 
unterschiedliche Bytes auf. Ich nehme an, dass es sich um eine Art 
Zeitstempel handelt. Ich würde aber gerne, dass exe-Files absolut gleich 
sind, wenn sich am Projekt nichts geändert hat. Das Verhalten tritt 
übrigens auch beim Watcom-Compiler auf. Lässt sich das irgendwo 
abstellen? Ich habe keine derartige Option gefunden.
Gruß Jörg

von Timmo H. (masterfx)


Lesenswert?

Joa Timestamp gibts im PE Format. Das andere Byte an 0xD8 dürfte eine 
Checksumme sein. Einfach mal schauen was die Spec so hergibt: 
http://download.microsoft.com/download/e/b/a/eba1050f-a31d-436b-9281-92cdfeae4b45/pecoff.doc

von Jörg Günzel (Gast)


Lesenswert?

Danke schön,
das sieht aber nicht so aus, als ob man das in den makefile-Optionen 
abschalten könnte, oder?
Dann bliebe entweder, in jedem exe-File mit einem selbstgeschriebenen 
Programm diese Bytes zu überschreiben (was auch ziemlich nervig ist), 
oder man merkt sich einfach, dass wenn nur diese bestimmten Bytes beim 
Binärvergleich unterschiedlich sind, diese exe-Files aus denselben 
Quellen erzeugt wurden
Gruß
 Jörg

von Peter (Gast)


Lesenswert?

Warum ist es überhaupt wichtig ob die exe gleich ist?
Es sollte doch eine Versionnummer geben in der man erkennt um welche exe 
es sich handelt.

von Jörg Günzel (Gast)


Lesenswert?

@Peter
Es geht einfach darum: man hat irgendwo eine exe-Datei, die bestens 
funktioniert und weiß aus welchen Projekt diese stammt, weiß aber nicht 
mehr genau, welcher Quelltextversion (innerhalb dieses Projekts) sie 
entspricht. Dann kann man sie durch Kompilieren der verschiedenen 
Quelltextversionen und Binärvergleich ihrem Quelltext genau zuordnen

Was für eine Versionsnummer meinst Du?
Eine die man selber vergibt und in die exe hineinschreibt (und per 
'-v'-Parameter oder so auslesen kann)?
Falls ja: Das sollte man natürlich machen. Es kommt aber eben auch mal 
vor, dass man Änderungen vornimmt, und vergisst die Versionsnummer zu 
ändern
Gruß
 Jörg

von (prx) A. K. (prx)


Lesenswert?

Wenn man mit Versionierung arbeitet und in die Files entsprechende Tags 
einbindet, dann kann man mit dazu passenden Tools diese hinten wieder 
rausfischen und kennt dann die Quelltextversion.

von Jörg Günzel (Gast)


Lesenswert?

@ A. K.
Aber das wäre dann eine Software außerhalb von Visual Studio, wie 
Subversion?
Gruß
 Jörg

von Name (Gast)


Lesenswert?

>Es kommt aber eben auch mal vor,
>dass man Änderungen vornimmt,
>und vergisst die Versionsnummer zu ändern

Du kannst es ja auch so machen, dass nach jedem Kompilieren ein Programm 
gestartet wird, dass dann die Ressourcendatei bearbeitet und die 
Versionsnummer um 1 inkrementiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.