Você pode recomendar um editor hexadecimal que pode ser executado a partir do shell? Eu preciso ser capaz de editar não apenas visualizar o conteúdo.
Você pode recomendar um editor hexadecimal que pode ser executado a partir do shell? Eu preciso ser capaz de editar não apenas visualizar o conteúdo.
Respostas:
emacs
possui um modo hexl para edição hexadecimal.
dd
a região que você deseja editar em um arquivo, abra-a no emacs e depois dd
volte.
xxd
Essa ferramenta é a mais comumente encontrada para esse tipo de tarefa (disponível por padrão no Ubuntu e no macOS). Você pode remover a parte legível ascii à direita, se necessário, -p
e pode reverter (alterar entrada ascii para dados binários) usando a -r
função Aqui estão alguns exemplos simples de uso:
Convertendo em hexadecimal com visualização ascii:
echo example | xxd
Convertendo para um hexdump (sem exibição ascii à direita):
echo example | xxd -p
Convertendo de um hexdump de volta para dados binários:
echo 746573740a | xxd -p -r
Você pode ficar muito mais complexo com isso nos scripts de shell. Na verdade, eu usei isso e o "dd" para procurar seqüências específicas e modificá-las de uma maneira predefinida, tudo a partir de um script de shell usando nada além de bash dd
, e xxd
. Na verdade, você não precisa de dd para isso, pois pode "procurar" em um local específico e gravar nesse local a sequência de bytes necessária. A maior vantagem dessa abordagem é a facilidade de script.
Há também DHEX
apt-cache show dhex
editor hexadecimal baseado em ncurses com modo diff
Isso é mais do que apenas outro editor hexadecimal: inclui um modo diff, que pode ser usado para comparar fácil e convenientemente dois arquivos binários. Como é baseado em ncurses e é utilizável, ele pode ser executado em qualquer número de sistemas e cenários. Com a utilização de logs de pesquisa, é possível rastrear alterações em diferentes iterações de arquivos facilmente.
Se você não está familiarizado com o vim ou emacs, este parece não ter muita curva de aprendizado.
Você também pode usar o vi / vim como um editor hexadecimal (ele pode chamar xxd).
Entre no modo hexadecimal:
:%!xxd
Sair do modo hexadecimal:
:%!xxd -r
:%!xxd
adição de novos caracteres (ou seja, nova linha) ao arquivo.
xxd
quem faz isso: é o próprio Vim.
:set binary
! Caso contrário, é provável que o VIM corrompa o arquivo adicionando um final de linha (CR / LF / CRLF) ao final do arquivo (dependendo do formato definido para ( set ff=[mac/unix/dos]
)). É altamente provável que quebre executáveis e binários de dados. E faz. Muito. Garantir que o VIM esteja no modo binário impedirá que isso aconteça.
Sei que essa é uma pergunta antiga, mas fiquei insatisfeita com todas as respostas aqui. Eu estava procurando por um editor hexadecimal que permitisse criar meus próprios arquivos binários (também conhecido como modo de inserção) e que pudesse lidar com arquivos muito grandes.
Encontrei ajustes , que atendem a esses dois requisitos, bem como aos OPs.
- O Tweak suporta o modo de inserção (não é particularmente útil se você estiver editando um arquivo executável ou uma imagem do sistema de arquivos, mas pode ser extremamente útil em outros formatos de arquivo, como PNG).
- Cortar, copiar e colar no arquivo que você está editando é extremamente eficiente. Não importa o tamanho da quantidade de dados que você está movendo - mesmo que seja uma seção de 200 Mb de uma imagem de CD - o Tweak sempre executará a operação efetivamente instantaneamente.
- O Tweak suporta carregamento lento do arquivo de entrada: em vez de colocar tudo na memória imediatamente, ele simplesmente se lembra de quais partes do buffer de edição são cópias de quais partes do arquivo de entrada e se refere ao arquivo no disco quando necessário. O ajuste só precisa levar um tempo significativo quando você realmente precisa ler o arquivo inteiro. As únicas duas operações com essa propriedade estão pesquisando e salvando a versão modificada do arquivo em disco. Tudo o resto é instantâneo.
tweak
, mas para mim foi estranho. Posso tentar novamente se realmente precisar de edição. Execute a man tweak
partir do terminal para obter uma visão geral e uma lista de comandos.
O Bless Hex Editor é um editor binário (hex) e atualmente oferece os seguintes recursos:
Você pode descarregá-lo aqui: http://packages.debian.org/sid/all/bless/download .
Para instalá-lo, consulte Como instalo um arquivo .deb através da linha de comando?
Preciso de mais?
bless
comando após a instalação.
Este é simples de usar:
sudo apt-get install hexcurse