Veja o que eu criei (com base em várias fontes on-line e algumas experiências).
Convertendo do hex para o bin ( hex2bin
):
#!/bin/sh
sed 's/\([0-9A-F]\{2\}\)/\\\x/gI' "$1" | xargs printf
Convertendo de bin para hexadecimal ( bin2hex
):
#!/bin/sh
hexdump -C "$1" | cut -b9- | cut -d"|" -f1 | tr -d ' \t\n\r'
Exemplo de uso:
./bin2hex binary_file_1 | ./hex2bin - > binary_file_2
diff -s binary_file_1 binary_file_2
Isso funciona com o busybox, mas infelizmente o hex2bin é limitado pelo comprimento máximo do argumento dado a xargs
, então este método só funcionará para arquivos pequenos (menos de 32 KiB no meu sistema desktop).