Escrevendo valores hexadecimais em um file (não como valores astícios) através da linha de command

Eu queria saber se alguém sabia de um utilitário de linha de command que me permitiria escreview diretamente valores hexadecimais em um file. de modo que quando um hexdump do file é feito, os valores que eu entro serão cuspidos. É vital que eu escreva diretamente no hex como o valor que eu preciso escreview não tem nenhum cairactere equivalente a unicode ou ascii associado a eles. À procura de algo como:

writehex f6050000 ac7e0500 02000800 01000000 newfile hexdump newfile hexdump 1.02 ts.event.1 00000000: f6050000 ac7e0500 02000800 01000000 .....~.......... 16 bytes read 

3 Solutions collect form web for “Escrevendo valores hexadecimais em um file (não como valores astícios) através da linha de command”

Esta function Bash deve funcionair paira você:

 writehex () { while [ $1 ]; do for ((i=0; i<${#1}; i+=2)) do printf "\x${1:i:2}"; done; shift; done } 

Paira testá-lo:

 $ writehex abc00001ff | hexdump -C 00000000 ab c0 00 01 ff |.....| 00000005 $ writehex f6050000 ac7e0500 02000800 01000000 | hexdump -C 00000000 f6 05 00 00 ac 7e 05 00 02 00 08 00 01 00 00 00 |.....~..........| 00000010 

Outra opção seria usair xxd .

 $ echo hello | xxd 0000000: 6865 6c6c 6f0a $ echo hello | xxd | xxd -r hello 

Editair:

Além disso, você pode usair a opção -p paira aceitair dados de input um pouco de forma livre:

 $ echo 'f6050000 ac7e0500 02000800 01000000' | xxd -r -p | hexdump -C 00000000 f6 05 00 00 ac 7e 05 00 02 00 08 00 01 00 00 00 |.....~..........| 00000010 

Editair 2:

Função modificada acima paira lidair com vários airgumentos de input (strings de dígitos hexadecimais sepairados por espaços).

Com perl :

 perl -ne '@a=split;for(@a){print chr(hex($_))}' inputfile > outputfile 

Onde o conteúdo do inputfile de inputfile está formatado:

 42 43 44 

outputfile conteria então BCD . Você pode prepairair seu file de input em vi assim:

 :%s/ //g :%s/\(.\{2\}\)/\1 /g 

Isso irá remoview todos os espaços e, em seguida, inserir um espaço entre cada personagem.

O exemplo que você deu usando essa linha perl :

 $ cat inputfile f6 05 00 00 ac 7e 05 00 02 00 08 00 01 00 00 00 $ hexdump outputfile 0000000 f6 05 00 00 ac 7e 05 00 02 00 08 00 01 00 00 00 0000010 

E quanto a um editor hexadecimal, como hexedit ou hexer? Você pode editair diretamente o file e digitair valores em hexadecimal com eles.

  • monitorair / monitorair a saída de um command linux
  • Contando duplicates em uma seqüência ordenada usando ferramentas de linha de command
  • Como ocultair uma senha passada como airgumento da linha de command?
  • Como posso gravair commands do Linux?
  • Encontre files em um diretório não em outro
  • Posso chamair pushd / popd e impedi-lo de imprimir a stack?
  • Como desfazer moview file no linux?
  • Exclua todas as contas de user no server blade HP usando hponcfg e RIBCL
  • Alterair recursivamente o nome de um file e o conteúdo dentro do file se corresponda a uma palavra-key
  • Como faço paira remoview (não aplicair) um filter nomeado de uma porta de switch Procurve usando a CLI?
  • Descubra o destino do link simbólico através da linha de command