Для исполняемого файла PE я могу перечислить импортированные символы, используя
dumpbin /imports FILE.EXE
или используя утилиту зависимость, которая является приложением GUI.
«nm ELF-binary» просто возвращает "без символов".
Попробуйте objdump -T 'ELF-файл'
Я предпочитаю readelf
.
readelf -s <file>
Выходные данные objdump для этой цели немного излишни и требуют большого разбора, чтобы найти фактический импорт.
Я предпочитаю 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]
Как видите, необходимые библиотеки помечены как "НЕОБХОДИМЫЕ".
Наряду с другими ответами, размещенными здесь, я хотел бы предложить другой. Напечатанное содержимое является функцией формата файла, где ELF прекрасно подходит для решения этой проблемы.
objdump -p /path/to/binary | grep NEEDED
Grep просто извлекает содержимое Dynamic Section
, но это формат вывода objdump -p
который делает это простым решением.