Saída Hexdump (especificamente xxd) para arquivos exec

0

Quando eu executo um Hexdump usando o comando xxd -b "textile.txt" no OS X, o terminal imprime tanto o binário como o equivalente ASCII real na coluna mais à direita, mostrando o conteúdo dos arquivos de texto em inglês.

Se eu criar um programa C simples que não faça nada além de imprimir 'olá mundo' no terminal e salvá-lo como um arquivo .exec , a saída do comando xxd -b conterá binário que, quando traduzido, não está em nenhuma parte para ser encontrado no código-fonte original de pré-compilação de arquivos .exec.

Exemplo:

0002034: 00000101 00000000 00000010 01011111 01101101 01101000  ..._mh
000203a: 01011111 01100101 01111000 01100101 01100011 01110101  _execu
0002040: 01110100 01100101 01011111 01101000 01100101 01100001  te_hea
0002046: 01100100 01100101 01110010 00000000 00100001 01101101  der.!m
000204c: 01100001 01101001 01101110 00000000 00100101 00000010  ain.%.

Estou assumindo que o processo de compilação é responsável por isso, o que me leva a teorizar que essa saída na coluna mais à direita pode, de fato, ser um código Assembly.

Minha pergunta em resumo: Qual é a natureza da saída de despejo hexadecimal para arquivos .exec, especificamente: é o código de montagem e, se não, o que é isso?

Obrigado antecipadamente.

    
por user4493605 25.02.2016 / 11:09

1 resposta

0

Não é realmente montagem; mas eu sei que é muito comum misturar código de montagem e máquina. A montagem ainda é uma linguagem legível por (alguns) seres humanos e deve ser compilada para ser comestível por máquinas. O que você vê aqui é o código da máquina.

link

    
por 25.02.2016 / 11:57

Tags