Bitte empfehlen Sie einen Hex-Editor für die Shell

Antworten:

24

emacs hat einen Hexl-Modus für die Hex-Bearbeitung.

Psusi
quelle
4
Der Hexl-Modus eignet sich nicht für große Dateien oder Festplattenpartitionen, da die gesamte Datei in einen Emacs-Puffer geladen wird. Es ist ideal für kleine Dateien, wenn Sie bereits mit Emacs vertraut sind.
Peter Cordes
1
@PeterCordes, zum Bearbeiten einer Festplatte, einfach dddie Region, die Sie in eine Datei bearbeiten möchten, und öffnen Sie diese in Emacs, dann ddwieder.
Psusi
6
@psusi Das Problem ist, dass ich mich nicht anstrengen muss, um eine Datei zu bearbeiten
Cole Johnson,
1
@ColeJohnson, wir reden nicht über das Bearbeiten einer Datei. Wir sprechen über die Bearbeitung einer gesamten rohen Festplatte.
Psusi
2
@psusi Auf meinem Windows-Computer kann ich HxD verwenden und eine Festplatte wie jede andere Datei öffnen.
Cole Johnson
76
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 -pund mit der -rFunktion 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.

Goblinlord
quelle
2
xxd scheint standardmäßig auf Ubuntu 16.04 installiert zu sein, das ist SWEET! Vielen Dank!
GlenPeterson
Auch standardmäßig unter MacOS verfügbar!
thom_nic
34

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.

mivk
quelle
3
Der einzige Nachteil von dhex imho ist, dass es keine Bytes einfügen / löschen kann. Ansonsten ist es ein sehr schöner Konsolen-Hex-Editor.
Nicholi
Wenn ich "dhex / path / to / big / file" ausführe, wird "Fehler beim Öffnen der Eingabedatei / path / to / big / file" angezeigt. Ich mag Dhex und benutze es die ganze Zeit für normal große Dateien.
sondra.kinsey
@ sondra.kinsey: Ich habe gerade eine 20-GB-Datei auf meinem 8-GB-RAM-Rechner ausprobiert und hatte kein Problem. Dies ist auf Ubuntu 16.04 64 Bit mit dhex 0.68-2build1 (amd64). Also sollte es funktionieren.
18.
@mivk, ich habe dhex erfolglos mit einer 44GB-Datei unter Verwendung von dhex_0.68-2build1_i386 auf Ubuntu 17.04 mit 3GB RAM versucht. hexedit und wxHexEditor öffnen die gleiche Datei ohne Beanstandung.
sondra.kinsey
@ sondra.kinsey: vielleicht ein problem / fehler mit der 32bit version von dhex und dateien über 4GB?
Mivk
26

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

klcant
quelle
1
Damit würde ich vorsichtig sein. Ich habe festgestellt, :%!xxddass der Datei neue Zeichen (dh eine neue Zeile) hinzugefügt wurden.
Quazi Irfan
1
@iamcreasy es ist nicht xxdwer das tut: eher Vim selbst.
Ruslan
3
Vergiss das nicht :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.
Braden Best
8

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.
Gogeta70
quelle
Hmmm, ein Programm, das bereit ist, den Puffer bei jedem versehentlichen Tastendruck zu ändern, und den Benutzer nicht anweist, wie das Programm zu verwenden ist (oder wie es zu beenden ist!). Yuck! Es stellte sich heraus, dass der Befehl "exit" mit dem Befehl "emacs" identisch ist. Bei mir hat er jedoch nicht funktioniert. Deshalb habe ich alles Mögliche versucht, bevor ich ihn erneut ausprobierte. Ich habe Emacs vor Jahrzehnten aufgegeben, aber erinnere mich an den wichtigsten Befehl: Strg-X, Strg-C. Wenn du Emacs magst, magst du vielleicht tweak, aber für mich war es unangenehm. Ich kann es erneut versuchen, wenn ich wirklich eine Bearbeitung benötige. Rufen Sie man tweakdas Terminal auf, um eine Übersicht und eine Liste der Befehle zu erhalten.
Lambart
@Lambart Der Sinn des Einfügemodus von Tweak besteht darin, den Puffer zu ändern, sodass Ihr Punkt dort nicht wirklich gültig ist. Außerdem sollten Sie die Manpage lesen, bevor Sie sie verwenden. Wenn Sie dies nicht tun und sich dann darüber beschweren, dass Sie nicht wissen, wie Sie aussteigen sollen, ist dies nur faul.
Gogeta70
4

Bless Hex Editor ist ein binärer (Hex) Editor und bietet derzeit die folgenden Funktionen:

  • Effizientes Bearbeiten großer Datendateien und Blockgeräte.
  • Undo - Redo - Operationen auf mehreren Ebenen.
  • Anpassbare Datenansichten.
  • Schnelle Datenwiedergabe auf dem Bildschirm.
  • Mehrere Registerkarten.
  • Schnelles Suchen und Ersetzen von Vorgängen.
  • Eine Datenkonvertierungstabelle.
  • Erweiterte Funktionen zum Kopieren und Einfügen.
  • Hervorheben von Auswahlmusterübereinstimmungen in der Datei.
  • Plugin-basierte Architektur.
  • Export von Daten in Text und HTML (andere mit Plugins).
  • Bitweise Operationen an Daten.
  • Eine umfassende Bedienungsanleitung.

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?

Radu Rădeanu
quelle
10
Die Frage fragt nach einem Kommandozeileneditor.
Psusi
1
@psusi Nein, fragte die OP über einen Hex - Editor, der von Shell ausgeführt werden kann , nicht innerhalb Shell / Terminal. Es kann von der Shell mit dem blessBefehl ausgeführt werden, nachdem es installiert wurde.
Radu Rădeanu
33
Es gibt nichts, was Sie nicht von der Shell ausführen können. er hätte es nicht erwähnt, wenn er nicht Befehlszeile gemeint hätte.
Psusi
Eigentlich habe ich nach "ubuntu hex viewer" gesucht, was "window-based viewer" bedeutet, und die Suchseite hat mich hierher gebracht. Nach dieser Antwort hatte ich also gesucht.
Kinornirvana
2

Versuchen Sie es mit Hexed , es wurde für die Verwendung in Skripten und zum Erstellen von Dateien entwickelt.

b.zaar
quelle
2

Dieser ist kinderleicht zu bedienen:

sudo apt-get install hexcurse
HenryRootTwo
quelle
2

Gibt es auch ht. Installieren Sie es als

sudo apt-get install ht

und führen Sie es dann durch Eingabe hte.

Ich habe es jedoch nicht mit sehr großen Dateien / Partitionen versucht.

fjflores
quelle