Können Sie einen Hex-Editor empfehlen, der von der Shell ausgeführt werden kann? Ich muss nicht nur den Inhalt bearbeiten können.
Können Sie einen Hex-Editor empfehlen, der von der Shell ausgeführt werden kann? Ich muss nicht nur den Inhalt bearbeiten können.
Antworten:
emacs
hat einen Hexl-Modus für die Hex-Bearbeitung.
dd
die Region, die Sie in eine Datei bearbeiten möchten, und öffnen Sie diese in Emacs, dann dd
wieder.
xxd
Dieses Tool ist das am häufigsten verwendete, das ich für diese Art von Aufgaben gefunden habe (standardmäßig sowohl auf Ubuntu als auch auf macOS verfügbar). Sie können den ASCII-lesbaren Teil rechts bei Bedarf mit entfernen -p
und mit der -r
Funktion zurücksetzen (ASCII-Eingabe in Binärdaten ändern) . Hier einige einfache Anwendungsbeispiele:
Umwandlung in Hex mit ASCII-Ansicht:
echo example | xxd
Umwandlung in einen Hexdump (keine ASCII-Ansicht rechts):
echo example | xxd -p
Konvertieren von einem Hexdump zurück in Binärdaten:
echo 746573740a | xxd -p -r
In Shell-Skripten kann dies sehr viel komplexer werden. Ich habe dies und "dd" verwendet, um nach bestimmten Sequenzen zu suchen und diese in vordefinierter Weise zu ändern dd
, und zwar ausgehend von einem Shell-Skript, das ausschließlich bash , und verwendet xxd
. Sie brauchen dafür eigentlich auch kein dd, da Sie zu einem bestimmten Ort "suchen" und an diesen Ort die Bytesequenz schreiben können, die Sie benötigen. Der größte Vorteil dieses Ansatzes ist die einfache Skripterstellung.
Es gibt auch DHEX
apt-cache show dhex
nCurses-basierter Hex-Editor mit Diff-Modus
Dies ist mehr als nur ein Hex-Editor: Er enthält einen Diff-Modus, mit dem zwei Binärdateien einfach und bequem verglichen werden können. Da es auf ncurses basiert und themenorientiert ist, kann es auf einer beliebigen Anzahl von Systemen und Szenarien ausgeführt werden. Durch die Verwendung von Suchprotokollen ist es möglich, Änderungen in verschiedenen Iterationen von Dateien einfach zu verfolgen.
Wenn Sie nicht mit Vim oder Emacs vertraut sind, scheint dies keine große Lernkurve zu haben.
Möglicherweise können Sie vi / vim auch als Hex-Editor verwenden (es kann xxd aufrufen).
Hex-Modus aktivieren:
:%!xxd
Hex-Modus verlassen:
:%!xxd -r
Quelle: Verwendung von vi als Hex-Editor
:%!xxd
dass der Datei neue Zeichen (dh eine neue Zeile) hinzugefügt wurden.
xxd
wer das tut: eher Vim selbst.
:set binary
! Andernfalls kann VIM die Datei möglicherweise beschädigen, indem am Ende der Datei ein Zeilenende (CR / LF / CRLF) hinzugefügt wird (abhängig davon, auf welches Format Sie ( set ff=[mac/unix/dos]
) eingestellt haben). Es ist sehr wahrscheinlich, dass dadurch ausführbare Dateien und Datenbinärdateien beschädigt werden. Und das tut es auch. Viel. Wenn Sie sicherstellen, dass sich VIM im Binärmodus befindet, wird dies verhindert.
Ich weiß, dass dies eine alte Frage ist, aber ich war mit allen Antworten hier unzufrieden. Ich suchte nach einem Hex-Editor, mit dem ich meine eigenen Binärdateien (auch bekannt als Einfügemodus) erstellen und sehr große Dateien verarbeiten konnte.
Ich bin auf Tweak gestoßen , das sowohl diese Anforderungen als auch die OPs erfüllt.
- Tweak unterstützt den Einfügemodus (nicht besonders nützlich, wenn Sie eine ausführbare Datei oder ein Dateisystem-Image bearbeiten, kann aber in anderen Dateiformaten wie PNG äußerst nützlich sein).
- Das Ausschneiden, Kopieren und Einfügen in die Datei, die Sie gerade bearbeiten, ist äußerst effizient. Unabhängig davon, wie groß der Datenblock ist, in dem Sie sich gerade bewegen - auch wenn es sich um einen 200-MB-Abschnitt eines CD-Abbilds handelt - Tweak führt den Vorgang immer sofort aus.
- Tweak unterstützt das verzögerte Laden der Eingabedatei: Statt alles sofort in den Speicher zu ziehen, merkt es sich einfach, welche Teile des Bearbeitungspuffers Kopien welcher Teile der Eingabedatei sind, und verweist bei Bedarf auf die Datei auf der Festplatte. Tweak braucht nur dann viel Zeit, wenn Sie es wirklich brauchen, um die gesamte Datei zu lesen. Die einzigen beiden Operationen mit dieser Eigenschaft sind das Suchen und Speichern der geänderten Version der Datei auf der Festplatte. Alles andere ist augenblicklich.
tweak
, aber für mich war es unangenehm. Ich kann es erneut versuchen, wenn ich wirklich eine Bearbeitung benötige. Rufen Sie man tweak
das Terminal auf, um eine Übersicht und eine Liste der Befehle zu erhalten.
Bless Hex Editor ist ein binärer (Hex) Editor und bietet derzeit die folgenden Funktionen:
Sie können es hier herunterladen: http://packages.debian.org/sid/all/bless/download .
Informationen zur Installation finden Sie unter Wie installiere ich eine DEB-Datei über die Befehlszeile ?.
Brauche mehr?
bless
Befehl ausgeführt werden, nachdem es installiert wurde.
Dieser ist kinderleicht zu bedienen:
sudo apt-get install hexcurse