Update:
Ich lese Ihre Kommentare noch einmal und es sieht so aus, als würden Sie die Versionsinformationen von ausführbaren Dateien und Bibliotheken vergleichen, anstatt die Integrität der Dateien zu überprüfen.
Zunächst einmal müssen Sie verstehen, dass es keine Begriffe wie "Metadaten-Header" gibt. Ausführbare Dateien und Bibliotheken unter Windows verfügen über das Konzept so genannter "Ressourcen", die beim Kompilieren / Verknüpfen mit der endgültigen Datei verknüpft sind. Es ist keine Anforderung, daher kann der Programmierer Ressourcen verwenden oder einfach überspringen. In den Ressourcen einer Datei kann man praktisch alles, Symbole, Töne, Bilder, böswillige, verschlüsselte Nutzdaten usw. einpacken. In derselben Ressource kann der Programmierer zusätzliche Textinformationen angeben, z. B. die Dateiversion. Sie müssen verstehen, dass die Dateiversion in einigen Sprachen nicht automatisch weiterentwickelt wird. Es ist eine manuelle Aufgabe des Programmierers, die Dateiversion zu ändern.
Ok, lassen Sie sich zurück zum Thema. Ich denke, Sie möchten die Dateiversionen zwischen ausführbaren Dateien / Bibliotheken vergleichen, also können Sie das Befehlszeilenprogramm verwenden, um die Dateiversion mit Hilfe des offiziellen Dienstprogramms von Microsoft zu extrahieren sigcheck.exe
, das Teil eines sehr nützlichen Dienstprogramms von Sysinternals ist Suite . Wenn Sie sigcheck.exe
ausführbare Dateien ausführen, die über Ressourcen verfügen, extrahiert dieses Programm die von Ihnen erwähnten "Metadaten":
Publisher: Company: Description: Product: Prod version: File version:
Sie können weitere Felder analysieren, die Sie zum Vergleichen mit Ihrem bevorzugten Werkzeug benötigen.
Wenn Sie die Windows-API verwenden können, können Sie mithilfe von FileVersionInfo WinAPI "Metadaten" programmgesteuert extrahieren .
Vorherige Vermutung:
Da Sie bereits erwähnt haben compare old binary files with newly built ones
, wäre die beste Option für Sie die Verwendung von Versionskontrollsystemen wie git oder fossil, die neben der bequemen Nachverfolgung von Quelldateien auch Änderungen in binären Dateien nachverfolgen können.
Sie können Binärdateien auch auf verschiedene Arten vergleichen:
Das Standard-Unix- diff
Dienstprogramm, mit dem Binärdateien verglichen werden können, würde lediglich feststellen, ob sie sich unterscheiden oder nicht.
( Wenn Sie Windows 10 verwenden, können Sie WSL verwenden, um das native Dienstprogramm von Unix auszuführen. )
Es gibt auch, visual binary diff
dass sowohl unter Windows als auch unter Unix läuft.
Das Dienstprogramm des nativen Fensters fc
kann auch einen binären Vergleich durchführenfc /b file1 file2
Sie können die Explorer-Erweiterung verwenden, mit der der Hash von Binärdateien berechnet werden kann, beispielsweise HashCheck, DirHash oder sogar Microsoftfciv
Wenn Sie Microsoft Visual Studio verwenden, können Sie auch WinDiff verwenden
Für einen großen Vergleich von Dateien (in Terabyte-Größe) können Sie altes gutes HxD verwenden