O que é o ELF Magic?

26

Eu já vi discussões sobre magias ELF, mais recentemente os comentários em esta questão de troca de pilha de segurança . Eu vi isso mencionado antes, e eu vi isso em meus próprios logs de boot .. Mas não tenho certeza do que é isso.

A página man do elf está um pouco acima da minha cabeça, assim como eu não c ou idiomas de nível inferior.

Como alguém que usa o Linux como um sistema operacional diário, o que é o ELF?

    
por Mitch 02.09.2014 / 18:06

2 respostas

37

A partir da página do manual que você mencionou:

elf - format of Executable and Linking Format (ELF) files

O ELF define o formato binário dos arquivos executáveis usados pelo Linux. Quando você chama um executável, o sistema operacional deve saber como carregar o executável na memória corretamente, como resolver dependências de bibliotecas dinâmicas e onde pular para o executável carregado para começar a executá-lo. O formato ELF fornece essas informações. A magia ELF é usada para identificar arquivos ELF e é apenas os primeiros bytes de um arquivo:

% od -c -N 16 /bin/ls
0000000 177   E   L   F 002 001 001  
% readelf -h /bin/ls | grep Magic
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
elf - format of Executable and Linking Format (ELF) files
% od -c -N 16 /bin/ls
0000000 177   E   L   F 002 001 001  
% readelf -h /bin/ls | grep Magic
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
%pre% %pre% %pre% %pre% %pre% %pre% %pre% %pre% 0000020
%pre% %pre% %pre% %pre% %pre% %pre% 0000020

ou

%pre%

Esses 16 bytes identificam um arquivo como um executável ELF. Muitos formatos de arquivo têm bytes "mágicos" que realizam a mesma tarefa - identificando um tipo de arquivo.

    
por 02.09.2014 / 18:24
11

"Números mágicos" é o nome dado a seqüências constantes de bytes (geralmente) no início dos arquivos, usados para marcar esses arquivos como sendo de um formato de arquivo específico. Eles servem a um propósito semelhante às extensões de arquivo.

Veja a entrada do arquivo de jargões para obter mais informações.

Por exemplo, as imagens PNG sempre começam com os mesmos oito bytes: 137 80 78 71 13 10 26 10

Portanto, os números mágicos ELF são os bytes no início dos arquivos elf que os identificam como tal.

    
por 03.09.2014 / 11:01

Tags