Как обнаружить и перечислить статические библиотеки, используемые программным обеспечением в Linux?

385
learnerX

Предыстория : у нас есть стороннее программное обеспечение для нашего дистрибутива Linux, которое мы сейчас тестируем lubuntu. У нас есть установочные файлы и install.shсценарий оболочки, который устанавливает необходимые двоичные файлы для программного обеспечения в правильных каталогах.

Мы хотели бы определить, какие статические библиотеки используются этим программным обеспечением для внутреннего использования (чтобы мы могли определить, устарели ли они, и не представляют ли уязвимости в нашей среде).

Что мы сделали до сих пор : мы рассмотрели, lddно в нем перечислены только общие или динамические библиотеки. То же самое с objdump. Мы привыкли stringsсмотреть на строки, скрытые в некоторых из этих двоичных файлов, чтобы увидеть знаки номеров версий библиотеки и тому подобное. Но это очень трудоемкий и неэффективный процесс для больших двоичных файлов.

Вопрос : Как мы можем обнаружить и перечислить статические библиотеки, используемые в программном обеспечении в среде Linux?

3
Если поставщик удалил всю информацию о ссылках из полученного двоичного файла, то вы не сможете. Тем не менее, `gcc` часто оставляет некоторую информацию. Первым шагом является просмотр доступных разделов в двоичном файле с помощью `objdump -afh / your / file`, пожалуйста, отредактируйте вопрос с выводом. dirkt 5 лет назад 0
Учитывая то, что вы уже попробовали, вам нужно [Reverse Engineer] (https://reverseengineering.stackexchange.com/) все это. Также вы можете получить некоторую или любую полезную информацию с помощью [readelf] (http://man7.org/linux/man-pages/man1/readelf.1.html). Удачи ! C0deDaedalus 5 лет назад 0

1 ответ на вопрос

0
DavidPostill

Как мы можем обнаружить и перечислить статические библиотеки, используемые в программе Linux?

ldd <exe filename> показывает динамически связанные библиотеки

nm <exe filename> показывает символы в файле.

Чтобы увидеть, какие символы поступают из статических библиотек, нужно запустить nm эти библиотеки, чтобы получить список символов (функций и т. Д.) В них, а затем сравнить их с тем, из чего взят ваш список символов nm <exe filename>.

Вы сравниваете списки с commкомандой. Смотрите man commподробности.

Это было взято с этого форума здесь .

Источник Получить список статических библиотек, используемых в исполняемом файле, ответ DrAl

`nm` говорит" нет символов "для всех двоичных файлов, которые мы уже пробовали для программного обеспечения. learnerX 5 лет назад 0
Кроме того, в комментарии к этому ответу говорится: «Если это неизвестный двоичный файл, мы не знаем, какие библиотеки присутствуют. Поэтому« запуск nm против этих библиотек »звучит самоубийственно». learnerX 5 лет назад 0
Почему бы тебе просто не спросить продавца? DavidPostill 5 лет назад 0

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