Hex-Editor

Ansicht einer EXE-Datei (Portable Executable) in einem Hex-Editor
Ansicht einer mit gedit erstellten Textdatei in einem Hex-Editor
Hexcode des Bootsektorvirus Stoned im Hex-Editor

Unter einem Hex-Editor (auch Hexeditor) versteht man ein Computerprogramm, mit dem sich die Bytes beliebiger Dateien als Folge von Hexadezimalzahlen darstellen und bearbeiten lassen. Fehlt die Bearbeitungsmöglichkeit, spricht man von einem Hex-Viewer oder Hex-Betrachter. Beide Varianten sind besonders für die Anzeige und Bearbeitung von Binärdateien nützlich.

Mit einem Hex-Editor können alle Arten von Dateien betrachtet werden, wobei eine Interpretation der Daten standardmäßig nicht stattfindet. Bilddateien, MP3-Dateien und ausführbare Dateien werden als Folge von Bytes dargestellt, ohne dass diese als Farben, Töne oder Computerbefehle interpretiert werden.

Die Darstellung eines Hex-Editors kann recht unübersichtlich werden. Daher gibt es häufig auch die Möglichkeit, Daten interpretiert und strukturiert anzuzeigen sowie zwischen verschiedenen Interpretationen und Darstellungen zu wählen.

Vorteile von Hex-Editoren

[Bearbeiten | Quelltext bearbeiten]

Üblicherweise setzen Programme voraus, dass Daten einer gewissen Struktur bzw. einem Format entsprechen; daher können sie bei beschädigter Struktur mit den Daten nichts anfangen. Die Fähigkeit von Hex-Editoren, Daten auf unterster Ebene zu bearbeiten, ermöglicht zum Beispiel

  • in ihrer Struktur beschädigte Daten zu lesen und wiederherzustellen,
  • den Aufbau eines Dateiformats zu analysieren oder
  • Bereiche zu bearbeiten, die üblicherweise nicht zugänglich oder vom Benutzer editierbar sind, wie zum Beispiel Metainformationen in Bildern oder Textdokumenten bzw. Zustände einer Spielfigur in Spielständen.

Übliche Darstellung einer Datei durch einen Hex-Editor

[Bearbeiten | Quelltext bearbeiten]
00000 48 61 6C 6C 6F 2C 20 64 69 65 73 20 69 73 74 20 Hallo, dies ist
00010 65 69 6E 20 42 65 69 73 70 69 65 6C 2D 54 65 78 ein Beispiel-Tex
00020 74 2E                                           t.

Hex-Editoren sind in der Regel folgendermaßen aufgebaut (Erläuterung anhand des oben gezeigten Beispiels):

  • Ganz links wird ein Offset angezeigt. Dieser gibt die Anzahl der vorausgegangenen Bytes in Hexadezimalschreibweise an. In der ersten Zeile ist der Offset 0, was dem Dateianfang entspricht; in der zweiten Zeile beträgt er 1016, d. h., es sind 1016 = 1610 Bytes vorangegangen. Einige Hex-Editoren zeigen Offset-, Cluster- und Sektornummern auch dezimal an (die beiden letztgenannten sind für Bearbeitung der Daten auf Dateisystemebene wichtig).
  • In der Mitte sind die Bytes (genauer Oktette) der Datei hexadezimal dargestellt, z. B. 4816 für das erste Byte in der ersten Zeile.
  • Ganz rechts schließlich stehen die Bytes der aktuellen Zeile als Text (in einem bestimmten Zeichensatz) dargestellt. Im Beispiel werden die Bytes als ASCII interpretiert, dem gebräuchlichsten 1-Byte-Code (das erste Byte 4816 entspricht dem Buchstaben H). Diese Darstellung ist vornehmlich dann brauchbar, wenn es sich bei den Daten um menschenlesbaren Text handelt. So werden z. B. Bilder wie eine zufällige Aneinanderreihung von Zeichen dargestellt, manchmal sind jedoch Muster zu erkennen (besonders in unkomprimierten Bildern wie z. B. in Bitmaps).

Mit einigen Hex-Editoren lassen sich nicht nur Dateien, sondern auch die zugrundeliegenden Datenblöcke von Datenträgern (etwa Disketten oder Festplatten) bearbeiten. Programme, die dies als primäre Funktion anbieten, werden meist Disk-Editor oder auch Disk-Monitor genannt, wobei hier fast immer die Funktion der Bearbeitung gegeben ist (und nicht nur die der Betrachtung).