Colocando o genio de volta na garrafa: Convertendo a saida do hexdump em binario

Durante o processo de instalação do OpenWRT no roteador DIR-825 precisei copiar alguns binários do roteador para o computador.

Como fazer isso quando você não tem a rede funcionando ainda? A solução é simples, use o hexdump e o xxd.

No roteador:

# hexdump mybinary.bin

Use o mouse para selecionar e copiar o conteúdo que o hexdump joga na tela. Uma dia importante é você configurar o terminal para rolagem ilimitada, no caso do gnome-terminal vá em Edit -> Profile -> clique no botão Edit -> Scrolling e marque Unlimited.

Abrar um editor (gedit) e coloque o conteúdo, salve como mybinary.txt, por exemplo.

Agora use o seguinte comando para gerar o binário novamente:

$ cat mybinary.txt | xxd -r > mybinary.bin

Esta dica eu encontrei no Linux Jornal.

ATUALIZACAO:
E se você quisesse fazer o oposto, gerar um binario no seu roteador com a saida do hexdump de um binario do computador? O OpenWRT não possui o xxd por padrão, então você teria que encontrar outra alternativa.

Neste site encontrei a sugestão abaixo.
Considere o arquivo hdump como exemplo, com o conteudo:


$ cat hdump
41 42 43 44
45 46 47 48

$ echo 'ibase=16' | cat - hdump | tr ' ' \; | bc | awk '{printf("%c",$0)}'

Infelizmente o OpenWRT também não possui o comando bc, então lembrei do comando printf que usei para zerar a BIOS do computador a partir do terminal do Linux.

Então o comando ficou assim:

$ for i in $(cat hdump) ; do printf "\x$i" ; done

About these ads

One thought on “Colocando o genio de volta na garrafa: Convertendo a saida do hexdump em binario

  1. Pingback: How to transfer files to a Linux embedded system over serial | Alan Carvalho de Assis

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s