Как обнаружить и перечислить статические библиотеки, используемые программным обеспечением в Linux?
Предыстория: у нас есть стороннее программное обеспечение для нашего дистрибутива Linux, на котором мы сейчас тестируем lubuntu
, У нас есть установочные файлы и install.sh
сценарий оболочки, который устанавливает необходимые двоичные файлы для программного обеспечения в правильных каталогах.
Мы хотели бы определить, какие статические библиотеки используются этим программным обеспечением для внутреннего использования (чтобы мы могли определить, устарели ли они, и не представляют ли уязвимости в нашей среде).
Что мы сделали до сих пор: мы смотрели на ldd
но в нем перечислены только общие или динамические библиотеки. То же самое с objdump
, Мы использовали strings
чтобы посмотреть на строки, скрытые в некоторых из этих двоичных файлов, чтобы увидеть знаки номеров версий библиотеки и тому подобное. Но это очень трудоемкий и неэффективный процесс для больших двоичных файлов.
Вопрос: Как мы можем обнаружить и перечислить статические библиотеки, используемые в программном обеспечении в среде Linux?
1 ответ
Как мы можем обнаружить и перечислить статические библиотеки, используемые в программе Linux?
ldd <exe filename>
показывает динамически связанные библиотеки
nm <exe filename>
показывает символы в файле.Чтобы увидеть, какие символы взяты из статических библиотек, необходимо запустить
nm
с этими библиотеками, чтобы получить список символов (функций и т. д.) в них, а затем сравнить их с тем, что ваш список символов отnm <exe filename>
,Вы сравниваете списки с
comm
команда. Увидетьman comm
для деталей.Это было взято с этого форума здесь.
Источник Получить список статических библиотек, используемых в исполняемом файле, ответ marlon brando