Jak wyświetlić listę importowanych symboli w pliku wykonywalnym ELF?


19

W przypadku plików wykonywalnych PE mogę wyświetlić listę importowanych symboli za pomocą

dumpbin /imports FILE.EXE

lub za pomocą narzędzia zależnego, które jest aplikacją GUI.

`nm ELF-binary 'zwraca tylko„ brak symboli ”.


Odpowiedzi:


16

Wypróbuj objdump -T 'plik ELF'


Myślałem, że objdump -T działał głównie na bibliotekach współdzielonych ...
jim mcnamara

cóż ... nie bardzo, jeśli to zrobię: objdump -t / bin / ls zwraca: „TABELA SYMBOLI: bez symboli”, z -T (która wyświetla TABELĘ SYMBOLI DYNAMICZNEJ) wyświetla dużo danych, na przykład: „00000000 DF UND 00000000 GLIBC_2.0 strchr "
Pan Shunz

5

Dane wyjściowe z objdump są w tym celu nieco nadmierne i wymagają sporej analizy, aby znaleźć rzeczywisty import.

W tym celu wolę readelf :

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]

Jak widać, wymagane biblioteki są oznaczone jako „POTRZEBNE”.


To zależy tylko od trybu, w którym je wywołujesz. Spróbować objdump -p /path/to/binary | grep NEEDED.
sherrellbc

Wydaje się, że to tylko lista bibliotek, a nie symboli.
plugwash

5

Wolę readelf.

readelf -s <file>


Zawiera tylko wymagane biblioteki. Pytanie dotyczy tego, jakie symbole są importowane z tych bibliotek.
Alcaro,

1

Wraz z innymi zamieszczonymi tutaj odpowiedziami chciałbym zaproponować inną. Wydrukowana zawartość jest funkcją formatu pliku, w którym ELF ładnie nadaje się do rozwiązania tego problemu.

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

Grep po prostu wyodrębnia zawartość Dynamic Section, ale jego format objdump -pwyjściowy sprawia, że ​​jest to proste rozwiązanie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.