Estou tentando despejar os caminhos completos das bibliotecas compartilhadas que são importadas por um arquivo ELF ( /usr/bin/ls
)
Usando readelf --dyn-syms /usr/bin/ls
eu recebo o nome das bibliotecas, mas não onde elas estão localizadas no sistema de arquivos:
101: 0000000000000000 0 FUNC GLOBAL DEFAULT UND [...]@LIBSELINUX_1.0 (4)
Usando objdump -T /usr/bin/ls
eu recebo ainda mais informações (incluindo nomes de funções):
0000000000000000 DF *UND* 0000000000000000 (LIBSELINUX_1.0) getfilecon
Esta é uma informação útil, mas como posso extrair a localização da biblioteca no disco? Eu poderia executar o arquivo e ver o que ele abre via lsof
, mas existe alguma maneira de fazer isso sem executar o arquivo?
É
ldd
para isso que:Isso pode incluir mais do que as bibliotecas mostradas por
readelf
, pois também processará dependências transitivas.