Binärdateien vergleichen mit nwdiff

| 4 Kommentare

Nwdiff vergleicht zwei Dateien miteinander. Das kostenlose Tool ermöglicht durch seine besondere Darstellung, die Unterschiede schnell bis ins letzte Bit zu erfassen und sich gleichzeitig einen Einblick in den Dateiaufbau zu verschaffen.

Programme zum Vergleich von Dateien gibt es zuhauf. Viele sind auf Textdateien beschränkt. Andere können zwar binäre Daten vergleichen, listen die Unterschiede dann aber in endlosen Zahlenkolonnen aus. Auch die von mir regelmäßig genutzten Hexeditoren 010 und WinHex können natürlich zwei Dateien vergleichen. Die Unterschiede sind dann meist farblich hervorgoben, wobei beide Dateien in synchronisierten Fenstern Fenstern erscheinen.

Eine andere - und nach meinem Empfinden besonders übersichtliche - Darstellungsweise wählt das kostenlose nwdiff von Belden Software.

nwdiff vergleicht Binärdateien

Die Anzeige besteht aus vier quadratischen Elementen. Dargestellt wird immer ein Ausschnitt von 64 kiB Größe. Mit den Tasten PgUp und PgDown lässt sich der verglichene Bereich wählen. In der oberen Reihe erscheinen zunächst die beiden Dateien, und zwar bitweise. Das mag zunächst ungewohnt sein, aber schon nach kurzer Zeit kann man durch diese Darstellung auf einen Blick unterschiedliche funktionale Bereiche innerhalb einer Datei erkennen.

Für die Bildbeispiele auf dieser Seite habe ich ein Eventlog von Windows Vista zu zwei Zeitpunkten gesichert und verglichen. Die Logdateien liegen in einem proprietären binären Format vor. Bereits auf einen Blick lassen sich unterschiedliche Bänder erkennen, auf deren Bedeutung ich hier jedoch nicht tiefer eingehen möchte.

Die untere Zeile enthält Vergleichsansichten. Links ist die bitweise Verknüpfung beider Dateien mit XOR dargestellt. Ein hellgrüner Bildpunkt markiert dabei einen Unterschied, unveränderte Bits bleiben dunkel.

XOR offenbart die Unterschiede beider Dateien

Auffällig ist zunächst der massive Block am Dateiende. Hierbei handelt es sich um die neu hinzugekommen Logeinträge. Direkt darüber befindet sich ein dunkler Bereich. Das sind Eintragungen, die auch bei der ersten Momentaufnahme schon existierten. Natürlich haben sich diese Datensätze seitdem nicht mehr verändert.

Aber am oberen Rand der Grafik sind doch noch einige kleinere Veränderungen zu erkennen. Tatsächlich handelt es sich hierbei um einen Blockheader, der unter anderem die Nummer des letzten Eintrags und einen Zeiger auf freien Speicherplatz für den nächsten Datensatz enthält.

Um diese Beutung zu erkennen, sollte man allerdings von der bitweisen Darstellung wieder in die gewohnte byteweise Ansicht wechseln. Das geschieht mit einem wohl gezielten Mausklick auf das betreffende Pixel (oder über einen Button). Nwdiff stellt den jeweilgen Abschnitt dann in einer Hex-Ansicht dar. Beide Dateien erscheinen hier nebeneinander, die Unterschiede sind rot markiert.

Die Unterschiede in der vertrauten Hex-Ansicht.

Beide Dateien auf einen Blick liefert dann das letzte der vier Diagramme. Gesetzte Bits werden je nach Status in der einen oder anderen Datei in rot und grün markiert. Gelb erscheinen die Bits, die in beiden Dateien gesetzt sind.

Beide Dateien auf einen Blick.

Wie das Beispiel ahnen lässt, arbeite ich mich derzeit in das (natürlich undokumentierte) Dateiformat von Windows Vista ein. Auf nwdiff möchte ich dabei schon nicht mehr verzichten. Seine unkonventionelle bitweise Darstellung gibt mir ein Gefühl für den "Rhythmus" des neuen Dateiformats.

4 Kommentare

Hallo, ich bin bei der Suche nach einem Programm zum vergleichen von Binärdateien
hier vorbeigekommen.

Ich möchte zwei Bootsektoren vergleichen.

Dabei ist mir aufgefallen, dass Nwdiff unter Windows XP nicht richtig
funktioniert und falsche Werte anzeigt! Unter Windows 98 zeigt es die richtigen Werte an.

Mirkes Tiny Hexer, cmp, Hexdump etc. zeigen beim Vergleichen der Bootsektoren viel
weniger Unterschiede an als Nwdiff. Als ich bemerkte wie alt das Programm ist, testete ich
unter Windows 98. Unter Win98 zeigt es die gleichen Werte der anderen Programme an.

Hallo Michael,

danke für Deinen Bericht, das ist eine sehr interessante Information.

Allerdings verstehe ich derzeit noch nicht, welche Funktion in Nwdiff da derart von der Version des Betriebssystems abhängig ist. Selbst unter Vista konnte ich mit Testdaten dieses Problem nicht festellen.

Kannst Du die von Nwdiff gemeldeten unzutreffenden Unterschiede näher beschreiben?

Oder wäre es Dir gar möglich, mir die beiden Bootsektoren zukommen zu lassen?

Fehlalarm,

habe die falschen Dateien verglichen :)
Als ich den Screenshot betrachtete, ist es mir aufgefallen.

NWDIFF öffnet den zuletzt benutzten Ordner.
Die Bootsektoren (hda1.bs, hda2.bs etc.) heißen bei mir alle gleich, nur der Ordnername unterscheidet zwischen den Festplatten .

Sorry.

Da bin ich aber beruhigt! :) Danke für die schnelle Antwort!

Archiv

Impressum

Dieses Blog ist ein Projekt von:
Andreas Schuster
Im Äuelchen 45
D-53177 Bonn
impressum@forensikblog.de

Copyright © 2005-2012 by
Andreas Schuster
Alle Rechte vorbehalten.
Powered by Movable Type 5.12