Версии файла ELF - PullRequest
       38

Версии файла ELF

1 голос
/ 17 февраля 2009

Я работаю над клоном команды elfdump.

Моя программа работает нормально при запуске elfdump -ecps *file* на всех исполняемых файлах. Однако, когда я запускаю свою программу в файле библиотеки, скажем libc.so, она выводит неверный номер версии для всех символов в разделе .symtab (в частности, все они равны нулю). Я много раз просматривал документацию, но не могу понять, почему это происходит.

Может кто-нибудь дать несколько советов? Или, возможно, как определить, является ли это библиотекой или нет, чтобы я мог просто жестко закодировать 0 в?

1 Ответ

3 голосов
/ 17 февраля 2009

Вы можете определить, работаете ли вы с общей библиотекой, проверив, имеет ли поле e_type значение ET_DYN, я полагаю. (человек эльф (5))

Есть статья Ульриха Дреппера, в которой рассказывается о трюках с версионной версией для каждого символа в ELF. Возможно, там есть дополнительная информация, с которой вы раньше не сталкивались. Страницы man на linux не содержат информацию о версиях для каждого символа в документах ELF.

...