Двоичный файл Linux исполняемые свойства: альтернатива ldd?

Linux ldd команда может показать динамические библиотеки, пользовавшиеся исполняемым файлом. Это - сценарий удара. Но это, кажется, хрупко, и не работает над некоторыми двоичными файлами. Существует ли альтернативный инструмент?

В моем определенном примере я могу использовать:

% файл datab2txt

datab2txt: ELF 64-разрядный исполняемый файл LSB, x86-64, версия 1 (SYSV), статически связанный, для GNU/Linux 2.4.0, не разделенный

но ldd перестал работать с:

% ldd-v datab2txt

не динамический исполняемый файл

6
задан 23.03.2011, 20:30

2 ответа

Вы могли также сделать:

readelf -d executable | grep NEEDED

Но это, вероятно, не делает то, что Вы хотите. Это показывает освобождение этого executable ссылки на, но не все освобождение его нуждается (библиотека может потребовать другой библиотеки).

9
ответ дан 07.12.2019, 15:33

Вывод file говорит "статически связанный". ldd только работы над динамично связанными исполняемыми файлами.

(Технически, весь Linux ldd делает, вызывают исполнимый загрузчик Linux, /lib/ld-linux.so.2, после установки переменной среды. Таким образом, это должен быть самый надежный путь.)

Некоторые программы могли бы использовать dlopen() для загрузки библиотек, чтобы не делать программу трудно - зависят от них. Например, Glibc загружает библиотеки NSS тот путь, потому что их имена только известны во время выполнения, не время компиляции/соединения.

6
ответ дан 07.12.2019, 15:33

Теги

Похожие вопросы