Si prega di raccomandare un editor esadecimale per la shell


Risposte:


24

emacs ha una modalità hexl per l'editing esadecimale.


4
hexl-mode non è adatto per file di grandi dimensioni o partizioni del disco, poiché carica l'intero file in un buffer emacs. È ottimo per file di piccole dimensioni se hai già dimestichezza con emacs.
Peter Cordes,

1
@PeterCordes, per modificare un disco, semplicemente ddla regione che si desidera modificare in un file e aprirlo in emacs, quindi ddtornare indietro.
psusi,

6
@psusi Il problema è che non dovrei fare lo sforzo di modificare un file
Cole Johnson,

1
@ColeJohnson, non stiamo parlando di modificare un file; stiamo parlando di modificare un intero disco rigido non elaborato.
psusi,

2
@psusi Sul mio computer Windows, posso usare HxD e aprire un disco come qualsiasi altro file.
Cole Johnson,

76
xxd

Questo strumento è il più comunemente disponibile che ho trovato per questo tipo di attività (disponibile per impostazione predefinita su Ubuntu e macOS più recenti). È possibile rimuovere la parte leggibile ASCII a destra se necessario utilizzando -pe è possibile ripristinare (modificare l'input ASCII in dati binari) utilizzando la -rfunzione. Ecco alcuni semplici esempi di utilizzo:

Conversione in esadecimale con vista ASCII:

echo example | xxd

Conversione in un hexdump (nessuna vista ASCII a destra):

echo example | xxd -p

Conversione da un dump esadecimale in dati binari:

echo 746573740a | xxd -p -r

Puoi diventare molto più complesso con questo negli script di shell. Ho effettivamente usato questo e "dd" per cercare sequenze specifiche e modificarle in modo predefinito tutto da uno script di shell usando nient'altro che bash dd, e xxd. In realtà non hai nemmeno bisogno di dd per questo in quanto puoi "cercare" in una posizione specifica e scrivere in quella posizione la sequenza di byte che ti serve. Il più grande vantaggio di questo approccio è la sua facilità di scripting.


2
xxd sembra essere installato su Ubuntu 16.04 di default, che è SWEET! Grazie!
GlenPeterson,

Disponibile anche per impostazione predefinita su MacOS!
Thom_nic,

34

C'è anche DHEX

apt-cache show dhex

editor esadecimale basato su ncurses con modalità diff

Questo è molto più di un altro editor esadecimale: include una modalità diff, che può essere utilizzata per confrontare facilmente e comodamente due file binari. Poiché è basato su ncurses ed è tematico, può essere eseguito su qualsiasi numero di sistemi e scenari. Con il suo utilizzo dei log di ricerca, è possibile monitorare facilmente le modifiche in diverse iterazioni di file.

Se non hai familiarità con vim o emacs, questo non sembra avere una curva di apprendimento.


3
L'unico aspetto negativo di dhex imho è che non è possibile inserire / eliminare byte. Altrimenti è un editor esadecimale per console molto bello.
Nicholi,

Quando eseguo "dhex / path / to / big / file", ottengo "errore nell'apertura di inputfile / path / to / big / file". Mi piace il dhex e lo uso sempre per file di dimensioni normali.
sondra.kinsey,

@ sondra.kinsey: ho appena provato un file da 20 GB sulla mia macchina RAM da 8 GB e non ho avuto problemi. Questo è su Ubuntu 16.04 64 bit, con dhex 0.68-2build1 (amd64). Quindi dovrebbe funzionare.
marzo

@mivk, ho provato dhex senza successo con un file da 44 GB usando dhex_0.68-2build1_i386 su Ubuntu 17.04 con 3 GB di RAM. hexedit e wxHexEditor aprono lo stesso file senza lamentele.
sondra.kinsey,

@ sondra.kinsey: forse un problema / bug con la versione a 32 bit di dhex e file oltre 4 GB?
marzo

26

Potresti essere in grado di usare anche vi / vim come editor esadecimale (può chiamare xxd).

Entra in modalità esadecimale:

:%!xxd

Esci dalla modalità esadecimale:

:%!xxd -r

Fonte: utilizzo di vi come editor esadecimale


1
Starei attento con quello. Ho trovato l' :%!xxdaggiunta di nuovi personaggi (cioè nuova riga) al file.
Quazi Irfan,

1
@iamcreasy non è xxdchi lo fa: piuttosto Vim stesso.
Ruslan,

3
Non dimenticare di :set binary! In caso contrario, è probabile che VIM danneggi il file aggiungendo un fine riga (CR / LF / CRLF) alla fine del file (a seconda del formato impostato su ( set ff=[mac/unix/dos])). È molto probabile che ciò rompa eseguibili e file binari di dati. E lo fa. Un sacco. Assicurarsi che VIM sia in modalità binaria eviterà che ciò accada.
Braden Best

8

So che questa è una vecchia domanda, ma non ero soddisfatto di tutte le risposte qui. Stavo cercando un editor esadecimale che mi permettesse di creare i miei file binari (aka modalità di inserimento) e che potesse gestire file molto grandi.

Mi sono imbattuto in tweak , che soddisfa entrambi questi requisiti, nonché i PO.

  • Tweak supporta la modalità di inserimento (non particolarmente utile se stai modificando un file eseguibile o un'immagine del filesystem, ma può essere estremamente utile in altri formati di file come PNG).
  • Tagliare, copiare e incollare all'interno del file che si sta modificando è estremamente efficiente. Non importa quanto sia grande la porzione di dati che stai spostando, anche se si tratta di una sezione di 200 Mb di un'immagine CD, Tweak eseguirà sempre l'operazione in modo efficace istantaneamente.
  • Tweak supporta il caricamento lento del file di input: invece di risucchiarlo immediatamente in memoria, ricorda semplicemente quali parti del buffer di modifica sono copie di quali parti del file di input e fa riferimento al file su disco quando è necessario. Tweak deve solo impiegare molto tempo quando ne hai davvero bisogno per leggere l'intero file. Le uniche due operazioni con questa proprietà sono la ricerca e il salvataggio su disco della versione modificata del file. Tutto il resto è istantaneo.

Hmmm, un programma che è pronto a modificare il buffer con ogni sequenza di tasti errata, e non indica all'utente come (o uscire!) Usare il programma. Che schifo! Risulta che il comando "exit" è lo stesso di emacs ... ma non ha funzionato per me la prima volta, quindi ho provato tutto il resto prima di riprovare. Ho rinunciato a emacs decenni fa, ma ricordo il comando più importante: Ctrl-X, Ctrl-C. Se ti piacciono gli emacs, ti potrebbe piacere tweak, ma per me è stato imbarazzante. Potrei riprovare se ho davvero bisogno di modificarlo. Esegui man tweakdal terminale per una panoramica e un elenco di comandi.
Lambart,

@Lambart L'intero punto della modalità di inserimento di tweak è modificare il buffer, quindi il tuo punto non è veramente valido lì. Inoltre, dovresti leggere la pagina man prima di usarla comunque. Non farlo e poi lamentarsi che non ti dice come uscire è solo pigro.
Gogeta70,

4

Bless Hex Editor è un è un editor binario (hex) e attualmente fornisce le seguenti funzionalità:

  • Modifica efficiente di file di dati di grandi dimensioni e dispositivi di blocco.
  • Operazioni di annullamento / ripetizione multilivello.
  • Visualizzazioni dei dati personalizzabili.
  • Rapido rendering dei dati sullo schermo.
  • Più schede.
  • Operazioni di ricerca e sostituzione rapide.
  • Una tabella di conversione dei dati.
  • Funzionalità avanzate di copia / incolla.
  • L'evidenziazione del modello di selezione corrisponde al file.
  • Architettura basata su plug-in.
  • Esportazione di dati in testo e HTML (altri con plugin).
  • Operazioni bit per bit sui dati.
  • Un manuale utente completo.

Puoi scaricarlo da qui: http://packages.debian.org/sid/all/bless/download .

Per installarlo, vedi Come posso installare un file .deb tramite la riga di comando?

Bisogno di piu?


10
La domanda è chiedere un editor della riga di comando.
psusi,

1
@psusi No, l'OP ha chiesto un editor esadecimale che può essere eseguito dalla shell , non all'interno della shell / terminale. Può essere eseguito dalla shell usando il blesscomando dopo l'installazione.
Radu Rădeanu,

33
Non c'è nulla che non puoi eseguire dalla shell; non lo avrebbe menzionato se non avesse inteso la linea di comando.
psusi,

In realtà stavo cercando "Ubuntu hex Viewer" nel senso di un visualizzatore basato su finestra e il sito di ricerca mi ha portato qui. Quindi questa risposta era ciò che cercavo.
KinORnirvana,



2

C'è anche ht. Installalo come

sudo apt-get install ht

e quindi eseguirlo digitando hte.

Tuttavia, non l'ho provato con file / partizioni molto grandi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.