LINUX.ORG.RU

Узнать где находиться функция

 , , ,


1

1

Командой strings -f fileName | grep symbolName можно узнать есть ли символ в бинаре или либе.
К примеру

strings -f  binFile liba.so libb.so | grep test_func
binFile: test_func
liba.so: test_func
libb.so: test_func 

1. Можно ли узнать, в какой либе эта функция находится?
2. Есть ли утилита, которая получает на вход бинарь/либу и символ, и показывает, где символ определен. (что-то типа продвинутого ldd), то есть результат должен быть похож на:
magic_utility binFile test_func
 binFile(test_func) => libb.so

magic_utility liba.so test_func
 liba.so(test_func) => libb.so

magic_utility libb.so test_func
 libb.so(test_func) => libb.so
 

★★★★

Последнее исправление: ymuv (всего исправлений: 2)

dlopen + dlsym, но может уже есть и готовое. А так, как уже сказали — nm.

beastie ★★★★★
()

Командой strings можно узнать есть ли символ в бинаре или либе.

Эта программа нужна совсем не для этого.

Deleted
()

objdump

Или как вариант, самому парсить elf файл

Armijo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.