diferença de formato hexdump vs xxd

8

Eu estava procurando como fazer um hexdump reverso e encontrei o xxd mencionado. No entanto, não parece funcionar com simplicidade:

xxd -r hexdumpfile > binaryfile

Em seguida, comparei a diferença entre as saídas de xxd infile e hexdump infile e encontrei três diferenças:

    A saída
  1. xxd tem dois pontos após o endereço
  2. A saída
  3. xxd tem as posições nos dados invertidas (por exemplo, 5a42 na saída hexdump torna-se 425a na saída xxd)
  4. Existem alguns caracteres extras depois de cada linha

Eu só tenho a versão hexdumped de certos arquivos em um servidor. Como posso recuperar corretamente os dados binários usando xxd?

    
por tanon 26.07.2011 / 07:26

2 respostas

6

Não há um comando que eu saiba que faça a conversão, mas pode ser facilmente dividido em alguns passos:

  1. Retire endereços de hexdump output usando sed
  2. Converta em binário usando xxd
  3. Conversão Endian (por exemplo, 5a42 se torna 425a ) usando dd

Este é o comando completo:

sed 's/^[0-9]*//' hexdump | xxd -r -p | dd conv=swab of=binaryfile
    
por 19.09.2013 / 00:09
0

Você pode fazer a conversão em um comando sed . É suficiente adicionar o : após o endereço e alterar o endianness (alternando ab12 para 12ab ).

sed -E 's/ /: /;s/ (..)(..)/ /g' dump | xxd -r
    
por 16.10.2018 / 13:24