No meu Ubuntu 18.04, quando desmonto /bin/cat
ou no coreutils usando o IDA Pro existe o start
símbolo " ", geralmente encontrado com o nome " _start
" em outros programas como gimp
.
No entanto, quando uso nm
para encontrar os símbolos mesmo com -D
switch, não consigo encontrar nenhum start
símbolo. Por que é que?
Minha tarefa é encontrar um símbolo apontando para o ponto de entrada de um determinado programa.
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 removido) ou como símbolos desanexados.