Bagaimana cara membuat daftar simbol yang diimpor dalam eksekusi ELF?


19

Untuk PE yang dapat dieksekusi, saya dapat membuat daftar simbol yang diimpor menggunakan

dumpbin /imports FILE.EXE

atau menggunakan utilitas dependen yang merupakan aplikasi GUI.

`nm ELF-binary 'hanya mengembalikan" no simbol ".


Jawaban:


16

Coba objdump -T 'ELF-file'


Saya pikir objdump -T bekerja terutama di perpustakaan bersama ...
jim mcnamara

baik ... tidak juga, jika saya lakukan: objdump -t / bin / ls ia mengembalikan: "SYMBOL TABLE: no simbol", dengan -T (yang berisi DYNAMIC SYMBOL TABLE) menampilkan banyak data, seperti: "00000000 DF UND 00000000 GLIBC_2.0 strchr "
Mr Shunz

5

Output dari objdump sedikit berlebihan untuk tujuan ini, dan membutuhkan sedikit penguraian untuk menemukan impor yang sebenarnya.

Saya lebih suka membaca sendiri untuk tujuan ini:

readelf -d dynamic-buffer-test

Dynamic section at offset 0x630a8 contains 23 entries:
 Tag                Type                 Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]

Seperti yang Anda lihat, perpustakaan yang diperlukan ditandai dengan "DIPERLUKAN".


Itu hanya tergantung pada mode di mana Anda memintanya. Coba objdump -p /path/to/binary | grep NEEDED.
sherrellbc

Ini sepertinya hanya daftar perpustakaan, bukan simbol.
plugwash

5

Saya lebih suka readelf.

readelf -s <file>


Itu hanya daftar perpustakaan yang diperlukan. Pertanyaannya adalah tentang simbol apa yang diimpor dari perpustakaan tersebut.
Alcaro

1

Bersamaan dengan jawaban lain yang diposting di sini saya ingin mengusulkan yang lain. Konten yang dicetak adalah fungsi dari format file, di mana ELF cocok untuk memecahkan masalah ini.

objdump -p /path/to/binary | grep NEEDED

Grep hanya mengekstraksi isi dari Dynamic Section, tetapi format objdump -poutput yang membuat ini solusi sederhana.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.