Anleitung
Ein Hex-Editor für macOS, neben dem Text
Manche Fragen haben keine andere Antwort als die Bytes. Welches Byte steht zwischen diesen zwei Wörtern? Ist das ein Tab oder vier Leerzeichen? Was steht im Kopf dieser Datei? Hier steht, wie man auf dem Mac nachsieht, ohne den Editor zu verlassen und ohne ein eigenes Werkzeug, das vom Text nichts weiß.
Was der Mac mitbringt
xxd datei | less und hexdump -C datei geben eine Ansicht aus, die man
lesen und nicht bearbeiten kann. dd schreibt ein Byte an einen Offset, den Sie
selbst ausgerechnet haben, einmal, ohne Widerrufen. Hex Fiend ist ein guter kostenloser
Hex-Editor — und eben ein Hex-Editor: Er zeigt Bytes, nicht den Text, den diese Bytes bilden.
Die Lücke ist der Normalfall. Sie lesen eine Datei, etwas darin stimmt nicht, und die Frage ist, was wirklich dasteht — eine Frage, mitten in gewöhnlicher Arbeit.
Die Bytes im Bereich neben dem Text
Darstellung ▸ Hex-Editor einblenden (⌃⌘X) legt die Ansicht neben das Dokument: den Offset, die Bytes in Achtergruppen und die druckbaren Zeichen daneben. Sie folgt dem Cursor — bewegen Sie sich im Text, springt die Ansicht an dieselbe Stelle —, und jede Seite zeigt, was die andere getan hat: Text im Editor zeichnet die Ansicht neu, Bytes in der Ansicht zeichnen den Text neu, und ein Widerrufen erreicht beide.
Sie ist bearbeitbar. Der Cursor steht zwischen zwei Bytes, so wie zwischen zwei Zeichen; tippen Sie Hex-Ziffern, und sie stehen da. Ziehen oder Umschalt-Pfeil wählt eine Folge aus, Tippen oder Einsetzen ersetzt sie, und ⌘C kopiert die Bytes.
Der Überschreibmodus patcht an Ort und Stelle. Derselbe Schalter wie im Text: Tippen ändert das Byte unter dem Cursor, statt eines einzufügen — so patcht man eine Datei, ohne etwas dahinter zu verschieben. ⌥⌘V schreibt die Zwischenablage über die Bytes ab dem Cursor.
Sie sagt, wo sie steht. Ein Klick auf ein Byte setzt den Cursor davor oder dahinter, und der Bereich sagt, wo: Offset 300, vor 0x4A. Das Offset-Feld nimmt Hex oder Dezimal, und angezeigt werden 64 KB auf einmal mit zwei Tasten zum Blättern — eine Datei, die weit größer ist als der Speicher, lässt sich also an jeder Stelle untersuchen.
Sie sagt, wenn die Bytes nicht die der Datei sind. Eine Datei in UTF-16 oder EBCDIC, eine mit NEL oder U+2028 zwischen den Zeilen oder eine komprimierte wird als UTF-8 mit LF bearbeitet und in ihrer eigenen Form zurückgeschrieben — der Bereich sagt deutlich, dass Sie den Arbeitstext sehen, nicht die Datei auf der Festplatte.
Wofür man ihn wirklich braucht
- Das Byte finden, an dem ein Parser scheitert: ein verirrtes 0x00, eine unerwartete BOM, ein CR ohne sein LF.
- Einen Kopf lesen: was diese Datei in ihren ersten sechzehn Bytes zu sein behauptet.
- Einen Wert in einer halb binären Datei patchen — eine Länge, ein Flag, einen String —, ohne etwas dahinter zu verschieben.
- Prüfen, was ein Mainframe-Abzug wirklich enthält, bevor Sie entscheiden, mit welcher Codepage Sie ihn lesen.
- „Ist das ein Tab?“ mit einem Tastendruck beantworten statt im Terminal.
Und die anderen Werkzeuge zum Nachsehen
Der Hex-Bereich ist eine von mehreren Antworten auf die Frage, was wirklich in einer Datei steht. Zeichen-Info (⌥⌘I) sagt, was ein einzelnes Zeichen ist — Codepunkt, Name und seine Bytes im Zeichensatz dieser Datei. „Unsichtbare Zeichen einblenden“ markiert Leerzeichen, Tabs und die, um die man sich sorgen sollte: geschützte Leerzeichen, nullbreite Zeichen, Steuerzeichen als Bild ihres Namens. „Zeichensätze vergleichen …“ zeigt dieselben Bytes auf jede Art gelesen, nebeneinander. „Dokument aufräumen …“ listet, was in der Datei ist, das nicht zum Text gehört, und entfernt, was Sie anhaken.
Fragen
Kann ich Bytes bearbeiten oder nur ansehen?
Bearbeiten. Hex-Ziffern tippen, auswählen, ausschneiden, kopieren, einsetzen und widerrufen — gemeinsam mit dem Text, sodass ein Widerrufen beides zurücknimmt.
Funktioniert das mit sehr großen Dateien?
Ja. Angezeigt werden 64 KB auf einmal, mit einem Offset-Feld für Hex oder Dezimal, sodass sich jede Stelle einer Datei untersuchen lässt, die größer ist als der Speicher.
Kann ich ein Byte patchen, ohne die Länge der Datei zu ändern?
Ja — mit dem Überschreibmodus, demselben Schalter wie im Text, oder mit ⌥⌘V, das die Zwischenablage über die Bytes ab dem Cursor schreibt.
Bleiben Text und Bytes im Gleichschritt?
Ja. Der Bereich folgt dem Cursor, jede Seite zeichnet sich neu, wenn die andere sich ändert, und ein Widerrufen erreicht beide.
Und eine Datei in EBCDIC oder UTF-16?
Sie wird als UTF-8 bearbeitet und in ihrer eigenen Form zurückgeschrieben, und der Bereich sagt das, statt Sie glauben zu lassen, Sie sähen die Datei auf der Festplatte.
Ersetzt das einen spezialisierten Hex-Editor?
Zum Nachsehen und Patchen während der Arbeit an einer Datei: ja. Für stundenlanges Reverse Engineering hat ein spezialisiertes Werkzeug mehr von dem, was diese Arbeit braucht.
Sehen Sie sich die Bytes selbst an
Volt ist in der kostenlosen Beta. Laden Sie ihn jetzt — ohne Konto, ohne Anmeldung — und probieren Sie ihn an der Datei aus, um die es geht. Jeder Build läuft sieben Tage, und jedes Update gibt weitere sieben.
macOS 13 oder neuer, Apple Silicon. Etwa 8 MB, signiert und notarisiert. Alle Funktionen · was sich in diesem Build geändert hat.
Verwandte Anleitungen
- Mainframe-Dateien auf dem Mac — Sätze, RDW und Copybooks.
- EBCDIC unter macOS — 62 Codepages und das Zeilenende NEL.
- Alle Funktionen — die vollständige Liste, durchsuchbar.
- Jede Datei, die Volt öffnet — Sprachen, Zeichensätze, Sätze.