Dateien, Binärdaten & Kompression

Hex-ViewerDateien Byte für Byte lesen und aus einem Hexdump wiederherstellen

Datei öffnen und die Bytes durchsehen – oder auf „Hexdump einfügen“ wechseln und die Ausgabe von xxd oder hexdump -C zurück in eine Datei wandeln.

Hex-Viewer

Eingabe

example-1x1.png

70 Bytes (0x46)

Datei hier ablegen oder „Datei öffnen“ verwenden.

Dateien werden lokal im Browser in kleinen Abschnitten gelesen und nicht hochgeladen.

Hex-Ansicht

00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 .PNG........IHDR
00000010 00 00 00 01 00 00 00 01 08 06 00 00 00 1f 15 c4 ................
00000020 89 00 00 00 0d 49 44 41 54 78 da 63 64 60 f8 5f .....IDATx.cd`._
00000030 0f 00 02 87 01 80 eb 47 ba 92 00 00 00 00 49 45 .......G......IE
00000040 4e 44 ae 42 60 82 ND.B`.
Auswahl 0x00000000–0x00000000 (1 Bytes)

Ein Klick auf ein Byte setzt den Cursor. Umschalt+Klick oder Umschalt+Pfeiltasten erweitern die Auswahl; Bild auf, Bild ab, Pos1 und Ende funktionieren in der Ansicht.

Inspektor bei 0x00000000 (0) · Little Endian

Bits
10001001
int8
-119
uint8
137
int16
20617
uint16
20617
int32
1196314761
uint32
1196314761
int64
727905341920923785
uint64
727905341920923785
float32
52816.53515625
float64
5.292397776572611e-260
UTF-8
—

Optionen

example-1x1.png: 70 Bytes.

Einen Hex-Viewer braucht man, wenn eine Datei nicht verrät, was sie ist: ein Download, der sich nicht installieren lässt, ein Konfigurationsblob einer Anwendung, ein Firmware-Image, ein PNG, das kein Programm öffnen will. Die Offset-Spalte zeigt, wo man steht, die Hex-Spalte jedes Byte exakt, und in der ASCII-Spalte fallen lesbare Zeichenketten sofort auf.

Man kann die Binärdatei auch im Terminal mit xxd oder hexdump -C anzeigen; dieser Hex-Viewer gibt genau dasselbe Layout aus, sodass sich beides Zeile für Zeile vergleichen lässt. Was das Terminal nicht hat, ist ein Cursor: Ein Klick auf ein Byte, und der Inspektor liest die dort beginnende Ganzzahl oder Gleitkommazahl in Little oder Big Endian. Und derselbe Hex-Viewer macht aus einem Hexdump, den jemand in ein Ticket kopiert hat, wieder die ursprüngliche Binärdatei.

Warum dieser Hex-Viewer

Er liest sich wie das Terminal, aber man kann auf ein Byte zeigen und fragen, was es bedeutet.

Große Dateien öffnen sofort

Gelesen werden nur die sechzehn sichtbaren Zeilen und die acht Bytes unter dem Cursor. Ein 3-GB-Image scrollt so flüssig wie ein 3-KB-Icon, und nichts wird nach dem ersten Megabyte abgeschnitten.

Links eine lange Datei mit einem kleinen markierten Fenster, das rechts auf ein Hex-Raster mit sechzehn Zeilen vergrößert wird; das Byte unter dem Cursor ist hervorgehoben.

Aus einem Hexdump wird wieder eine Binärdatei

Ausgabe von xxd oder hexdump -C einfügen, auch mit den *-Zeilen, mit denen hexdump Wiederholungen zusammenfasst, und die Bytes als .bin herunterladen. Eine Zeile mit Lücke im Offset wird mit Zeilennummer gemeldet statt mit Nullen aufgefüllt.

Zeilen eines Hexdumps, eine davon wegen einer Offset-Lücke rot umrandet, und ein Pfeil zur wiederhergestellten Binärdatei.

Werte in beiden Bytereihenfolgen

Der Inspektor liest die Bytes am Cursor als 8- bis 64-Bit-Ganzzahlen und 32- oder 64-Bit-Gleitkommazahlen. Beim Umschalten zwischen Little und Big Endian sieht man, wie dieselben vier Bytes zu zwei ganz verschiedenen Zahlen werden.

Vier farbige Bytes in zwei Reihenfolgen gelesen: links umgedreht für Little Endian, rechts unverändert für Big Endian, mit jeweils unterschiedlich langem Wertbalken.

So holt man mehr aus der Ansicht

01

Datei öffnen oder Hexdump einfügen

Datei auf die Eingabe ziehen oder „Datei öffnen“ wählen; die Ansicht erscheint sofort, ohne die ganze Datei zu laden. „Hexdump einfügen“ nimmt xxd, hexdump -C, reines Hex oder ein C-Array und wandelt 350 ms nach der letzten Eingabe um.

  • Mit ausgeschaltetem „Automatisch umwandeln“ wird nur bei „Umwandeln“ oder Strg/Cmd+Enter umgewandelt.
  • „Beispiel laden“ im Einfügemodus zeigt ein hexdump -C mit *-Zeile, damit man sieht, wie zusammengefasste Zeilen aufgeklappt werden.
02

Mit der Tastatur statt mit der Scrollleiste

Ein Byte anklicken, dann Pfeiltasten, Bild auf und Bild ab benutzen. Strg/Cmd+Pos1 und Strg/Cmd+Ende springen zum ersten und letzten Byte. „Zu Offset springen“ versteht 0x1A0, 1A0h oder dezimal 416.

  • Die Suche steht standardmäßig auf Hex-Bytes, sodass Signaturen wie 89 50 4E 47 oder FF D8 FF direkt gefunden werden; für Zeichenketten auf „Text“ wechseln.
03

Genau die ausgewählten Bytes exportieren

Mit Umschalt+Klick oder über Startoffset und Länge einen bestimmten Block auswählen, dann das Exportformat wählen. Die Offset-Spalte in der Ausgabe von hexdump -C und xxd behält die echten Datei-Offsets, der Ausschnitt passt also weiter zur Originaldatei.

  • Textexporte enden bei 1 MiB; „Auswahl herunterladen (.bin)“ kopiert die Bytes direkt und hat diese Grenze nicht.

Was sich mit den Bytes machen lässt

Layout wie im Terminal

Hex in Kleinbuchstaben, eine zusätzliche Lücke nach dem achten Byte, nicht druckbare Bytes als Punkt, 8, 16 oder 32 Bytes pro Zeile. Null-Bytes sind abgeblendet, damit sich Füllbereiche überspringen lassen.

Suche nach Bytes und Text

Eine Hex-Folge oder eine UTF-8-Zeichenkette in der ganzen Datei suchen, in einem Hintergrund-Worker mit Fortschrittsbalken, Trefferzähler und Vor/Zurück. Treffer über eine Blockgrenze hinweg werden trotzdem gefunden.

Daten-Inspektor

Vorzeichenbehaftete und vorzeichenlose 8-, 16-, 32- und 64-Bit-Ganzzahlen, float32, float64, die Bits des aktuellen Bytes und das dort beginnende UTF-8-Zeichen – alles ab der Cursorposition.

Vier Textformate und rohe Bytes

Eine Auswahl als hexdump -C, xxd, reines Hex im Layout von xxd -p oder als C-Array wie von xxd -i kopieren oder herunterladen – oder die rohen Bytes als .bin speichern.

Grenzen und Einleseregeln

Nur lesen: Bytes werden nie verändert
Es gibt kein Bearbeiten, Einfügen, Füllen oder Suchen und Ersetzen, und die Originaldatei wird nie geschrieben. Zum Patchen den Bereich als xxd exportieren, den Text bearbeiten, im Modus „Hexdump einfügen“ wieder einfügen und die .bin herunterladen – derselbe Weg wie mit xxd und xxd -r.
Lücken im Hexdump sind ein Fehler, keine Nullen
Der Offset jeder Zeile muss genau dort anschließen, wo die vorige endete. xxd -r füllt eine Lücke mit Null-Bytes; dieses Tool stoppt an der ersten Lücke, Überlappung oder unerwarteten Zeichen und nennt Zeile und Spalte, weil eine Lücke meist bedeutet, dass beim Kopieren Zeilen verloren gingen. Intel-HEX-Firmware wird erkannt und mit eigener Meldung abgelehnt.
Größengrenzen
Dateien bis 4 GiB lassen sich öffnen. Eingefügte Hexdumps sind auf 16 MiB Text begrenzt, Textexporte auf 1 MiB ausgewählter Bytes, und die Suche stoppt nach 10.000 Treffern und sagt das auch. Suchmuster dürfen bis zu 256 Bytes lang sein.
Was Textspalte und Suche nicht können
Die Textspalte ist reines ASCII, mehrbytige UTF-8-Zeichen erscheinen dort als Punkte; die UTF-8-Zeile im Inspektor dekodiert das Zeichen unter dem Cursor. „Groß-/Kleinschreibung ignorieren“ gilt nur für A–Z. Es gibt keine Platzhalter, keine Suche nach Zahlenwerten und keine Dateityperkennung oder Strukturanalyse.

Fragen zum Hex-Viewer

Wie lässt man sich den Bit- und Byte-Inhalt einer Datei anzeigen?

Die Datei in den Hex-Viewer oben ziehen: Jedes Byte erscheint als zweistellige Hexzahl mit seinem Offset. Die einzelnen Bits eines Bytes zeigt der Inspektor in der Zeile „Bits“, sobald man das Byte anklickt.

Kann ich damit hexadezimalen Code suchen und ersetzen wie in der Bash?

Suchen ja – als Hex-Bytes oder als Text, über die ganze Datei. Ersetzen nicht, denn die Ansicht ist nur lesend. Für einen Patch den Bereich als xxd exportieren, im Texteditor ändern und im Modus „Hexdump einfügen“ als neue .bin herunterladen.

Wie lese ich Werte in Little Endian und Big Endian aus?

Das erste Byte des Werts anklicken; der Inspektor zeigt int16 bis int64 sowie float32 und float64 ab dieser Position. Unter Optionen die Bytereihenfolge umstellen, und dieselben Bytes werden sofort in der anderen Reihenfolge gelesen.

Wo steht, ob eine Datei Big oder Little Endian codiert ist?

Das legt die Formatspezifikation fest, nicht die Datei selbst. Manche Formate tragen eine Markierung: TIFF beginnt mit II (Little) oder MM (Big), UTF-16-Text mit FF FE oder FE FF. Im Hex-Viewer sieht man diese Bytes am Offset 0 und kann beide Lesarten im Inspektor vergleichen.

Wie lese ich einen bestimmten Block aus einer Binärdatei?

Startoffset und Länge eintragen und „Bereich auswählen“ drücken, dann die Auswahl als Hexdump kopieren oder als .bin herunterladen. Die Offsets im Export bleiben die der Originaldatei.

Noch eine Frage offen?

Eine Datei im Hex-Viewer öffnen

Zuerst das Beispiel-PNG laden und Signatur, IHDR-Chunk und die im Inspektor als Big Endian gelesene Breite ansehen, dann eine eigene Datei im Hex-Viewer öffnen.

Alles läuft lokal in Ihrem Browser.