Puoi consigliare un editor esadecimale che può essere eseguito dalla shell? Devo essere in grado di modificare non solo visualizzare il contenuto.
Puoi consigliare un editor esadecimale che può essere eseguito dalla shell? Devo essere in grado di modificare non solo visualizzare il contenuto.
Risposte:
emacs
ha una modalità hexl per l'editing esadecimale.
dd
la regione che si desidera modificare in un file e aprirlo in emacs, quindi dd
tornare indietro.
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 -p
e è possibile ripristinare (modificare l'input ASCII in dati binari) utilizzando la -r
funzione. 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.
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.
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
:%!xxd
aggiunta di nuovi personaggi (cioè nuova riga) al file.
xxd
chi lo fa: piuttosto Vim stesso.
: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.
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.
tweak
, ma per me è stato imbarazzante. Potrei riprovare se ho davvero bisogno di modificarlo. Esegui man tweak
dal terminale per una panoramica e un elenco di comandi.
Bless Hex Editor è un è un editor binario (hex) e attualmente fornisce le seguenti funzionalità:
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?
bless
comando dopo l'installazione.
Questo è morto semplice da usare:
sudo apt-get install hexcurse