2012-05-07 11 views
5

¿Dónde el formato ELF almacena los nombres de las funciones importadas? ¿Siempre es posible enumerar todos los nombres de importación, como los ejecutables de PE?Importar nombres en el binario ELF

Por ejemplo, si un binario está usando printf, ¿es posible decir que sí, solo mediante el análisis estático del binario mismo?

Respuesta

7

En ELF se llaman símbolos indefinidos. Puede ver la lista de símbolos no definidos por:

  • nm -D <file>|grep -w U

  • objdump -T <file>|grep "\*UND\*"

archivos ELF no se especifican los símbolos provienen de que las bibliotecas; simplemente agrega una lista de bibliotecas compartidas para vincular en el binario ELF, y permite que el vinculador encuentre los símbolos en las bibliotecas.

+0

¿No podemos obtener de qué biblioteca compartida obtuvimos esas funciones? –

+0

Tenga en cuenta que también se puede importar un símbolo definido. Necesita ver las tablas de reubicación para ver qué símbolos se utilizan. – ysdx

+0

@AnwarMohamed: no porque no están vinculados a una biblioteca compartida específica en ELF. – ysdx

Cuestiones relacionadas