Questão Copie o conteúdo de um arquivo binário como caracteres hexadecimais


Eu quero copiar o conteúdo de um arquivo binário como caracteres hexadecimais.

Notepad ++ Plugin ASCII para Hex não funciona, porque os caracteres não são ASCII.

No TextPad 5.3, o modo hexadecimal não possui nenhuma opção de cópia.

Em algumas outras ferramentas, se eu copiar no modo hexadecimal e tentar colar em outro aplicativo, o texto simples ou os caracteres binários originais serão colados, em vez dos caracteres hexadecimais.


0


origem




Respostas:


Como exemplo, ver o hex para o "arquivo binário", ou seja, o executável, c: \ windows \ system32 \ calc.exe (a calculadora do Windows)

C:\>xxd -p c:\windows\system32\calc.exe >c:\crp\a.a

e aqui está o hex do calc.exe, no wordpad

enter image description here

E quanto a onde você pode obter xxd, bem, como eu mencionei na minha resposta aqui (que responde a uma pergunta um pouco relacionada, mas diferente) Converter o despejo hexadecimal de arquivo em arquivo binário (programa) no Windows?    O xxd vem empacotado com o vim7 para windows, então você pode copiá-lo de lá. Ou você pode obtê-lo do cygwin


1



Funciona, mas parece que tem um não fixo. de caracteres por linha e insere novos caracteres de linha artificiais. Eu quero o hex cru sem qualquer linha de embalagem ou largura fixa. - AllSolutions
@AllSolutions xxd -p blah.exe | tr -d '\r\n' >c:\crp\a.a  (removerá qualquer caractere e todo caractere \ n). Você pode obter tr com gnuwin32 ou cygwin (e cygwin é melhor que gnuwin32 em termos de ter versões posteriores) - barlop
Mas o que há aqui é um caractere real \ r \ n no arquivo, que eu não quero remover? - AllSolutions
@AllSolutions. Você quer dizer que se houver um \ r \ n no binário - você não irá removê-los. A remoção acontece após o seu hex. E se houver um \ r \ n no arquivo hexadecimal, você deseja remover isso.Lembre-se de que estamos pegando o arquivo binário (que pode ter um \ r \ n (dois bytes adjacentes) que pode significar alguns dados ou algum instrução), e estamos convertendo o arquivo em hexadecimal para que qualquer \ r \ n no binário não seja uma nova linha e seja convertido em 0d0a. Qualquer nova linha no arquivo hexadecimal será uma verdadeira \ r \ n uma nova linha real, por isso, se você remover qualquer \ r \ n do arquivo hexadecimal, não causará nenhum dano - barlop
também e uma nota lateral .. tr -d '\ r \ n' tecnicamente removeria qualquer estilo de unix \ ns também ... seria o mesmo que tr -d '\ n \ r' 'porque ele remove todos \ n e sempre. (e, novamente, removendo esses \ n ou \ r ou, é claro, \ r \ n, é bom .. porque o arquivo binário é convertido em hex armazenado como unicode / ascii) - barlop