Onde está o símbolo inicial no executável cat?

1

No meu Ubuntu 18.04, quando desmontei o /bin/cat ou o do coreutils usando o IDA Pro, existe o símbolo " start ", normalmente encontrado com o nome " _start " em outros programas como gimp . / p>

No entanto, quando eu uso nm para encontrar os símbolos, mesmo com a opção -D , não consigo encontrar nenhum símbolo start . Por que isso?

Minha tarefa é encontrar um símbolo apontando para o ponto de entrada de um determinado programa.

    
por masec 11.07.2018 / 18:08

1 resposta

3

O ponto de entrada de um binário é encontrado usando um ponto em seu cabeçalho; em binários ELF usados no Linux, esse é o valor de 32 ou 64 bits no deslocamento 0x18.

Você pode ver isso executando objdump -f no binário.

nm mostrará apenas um símbolo real para isso, supondo que seja realmente gerado pelo compilador, se os símbolos de depuração para o binário estiverem disponíveis, diretamente no binário (se não for retirado) ou como desanexado símbolos.

    
por 11.07.2018 / 18:19