Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Как узнать какие библиотеки динамически линкуются

Ответить
Настройки темы
Как узнать какие библиотеки динамически линкуются

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как узнать какие библиотеки динамически линкуются к выполнимому файлу (в частности, к  elf'у)?
Наверняка есть подобные утилиты!
Не знаете нельзя ли в инете где-нибудь найти ресурс с статически слинкованными утилитами для линукса небольшого размера?
В частности нужны, какой-нить маленький шелл, вроде bourne shell, нбольшой mount и какой-нить lsdev bkb rdev.

Отправлено: 07:01, 19-10-2002

 

Аватара для Barracuda

Редкий гость


Сообщения: 1769
Благодарности: 16

Профиль | Сайт | Отправить PM | Цитировать


Mihael
Цитата:
Как узнать какие библиотеки динамически линкуются к выполнимому файлу (в частности, к  elf'у)?
Есть, звате её readelf. Поиграйтесь с параметрами и получите необходимую информацию. А чтобы показать всё, укажите readelf -a <elf_binary_file> (если не обшибаюсь, то он и для библиотек инфу кажет).
Цитата:
какой-нить маленький шелл
Вроде в дистрибутиве RedHat такая есть. А вообще надо искать - так, на память, не помню.

-------
Жизнь - цепь, а мелочи - в ней звенья. Нельзя звену не придавать значения.(C) 80 дней вокруг света
---
Це все, що маю я... (С) Друга ріка


Отправлено: 09:40, 19-10-2002 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Guest

Guest


Профиль | Цитировать


Я что-то с его параметрами не разобрался...

В редхате есть ash - он якобы маленький статически слинкованный 500КБ.

Отправлено: 10:04, 19-10-2002 | #3


Аватара для ruslandh

info man howto


Сообщения: 6958
Благодарности: 384

Профиль | Сайт | Отправить PM | Цитировать


ldd Name_file
ld Name_file


Добавлено:

ash - есть во многих системах.


Добавлено:

Поищи на http://www.unixware.ru/  слово mini

-------
Поспешай не торопясь


Отправлено: 07:17, 20-10-2002 | #4


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


objdump, nm, readelf, ldd... Много всякой информации. Но как посмотреть что вот эта конкретная функция импортируется вот из этой конкретной библиотеки? В Win* это достаточно легко, а вот как этого добиться в линуксе?

Отправлено: 17:58, 25-01-2003 | #5


Аватара для ruslandh

info man howto


Сообщения: 6958
Благодарности: 384

Профиль | Сайт | Отправить PM | Цитировать


ooptimum
Можно и исходные коды этой библиотеки посмотреть
(Я вообще-то не врублюсь - в чем здесь проблема?)

-------
Поспешай не торопясь


Отправлено: 07:23, 26-01-2003 | #6


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


ruslandh
Исходные коды не всегда доступны. Это - раз. Во-вторых, их надо смотреть, а это лениво.
Цитата:
не врублюсь - в чем здесь проблема?
А проблема в том, что я не знаю как добиться того, о чем спрашивал. А знать хочу. Описываю запрос немного по-иному -- ldd может сказать, что приложение A динамически линкует библиотеки Б, В и Г. Это хорошо, но мне этого не достаточно. Я знаю, что приложение А импортирует функции Ф1, Ф2 и Ф3. Я хочу знать из какой библиотеки импортируется та или иная функция (т.е. Ф1 из Б, Ф2 из Г и Ф3 из В, например). Хочу это знать, не изучая самих библиотек Б, В и Г, а имея доступ только к самому приложению А. В форточках это элементарно, а вот как этого добиться в линуксе я и пытаюсь узнать.

Отправлено: 15:25, 26-01-2003 | #7


Аватара для Barracuda

Редкий гость


Сообщения: 1769
Благодарности: 16

Профиль | Сайт | Отправить PM | Цитировать


ooptimum
Ещё раз.
[pre]readelf -a <file_name> | less[/pre]

-------
Жизнь - цепь, а мелочи - в ней звенья. Нельзя звену не придавать значения.(C) 80 дней вокруг света
---
Це все, що маю я... (С) Друга ріка


Отправлено: 16:19, 26-01-2003 | #8


Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Barracuda
Еще раз... Ты думаешь я не смотрел, что дает readelf? Хорошо, вот пример. Squid есть у тебя? Выполняем команду:
readelf -a `which squid`
и читаем ее вывод. У себя я среди прочего вижу, что необходимы следующие библиотеки:
Цитата:
0x00000001 (NEEDED)                     Shared library: [libcrypt.so.1]
0x00000001 (NEEDED)                     Shared library: [libm.so.6]
0x00000001 (NEEDED)                     Shared library: [libresolv.so.2]
0x00000001 (NEEDED)                     Shared library: [libnsl.so.1]
0x00000001 (NEEDED)                     Shared library: [libc.so.6]
Но, мля, как мне посмотреть какая именно функция импортируется, скажем, из libcrypt.so.1? Если ты имеешь в виду секцию '.dynsym', то там такой информации нет. Там все входы имеют вид типа 'func_name@GLIBC_2.0'.

На мой вопрос есть нормальный ответ в природе?

Отправлено: 08:09, 27-01-2003 | #9


Аватара для Guest

Guest


Профиль | Цитировать


ooptimum
Тоды ой
Увы, но т.к. я не програмёр, то ничем больше помочь не могу
Залогиниться забыл

[s]Исправлено: Barracuda, 17:03 28-01-2003[/s]

Отправлено: 16:44, 28-01-2003 | #10



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Как узнать какие библиотеки динамически линкуются

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Вопрос - Какие есть способы узнать чужой пороль и как от них защитится? artifex220 Защита компьютерных систем 1 29-09-2009 08:31
Как узнать какие проги грузят сеть? wale Хочу все знать 7 21-08-2008 14:53
Как узнать какие железки стоят на готовой сборке Aser,Depo* Rock Хочу все знать 7 28-03-2008 15:37
[решено] Как узнать какие обновления уже установлены ??? VedunO Microsoft Windows 2000/XP 6 17-02-2007 15:02
Как узнать, какие модули perl установлены Guest Вебмастеру 6 02-06-2004 22:27




 
Переход