LINUX.ORG.RU

Как узнать адреса секций загруженной с помощью dlopen() либы?


0

0

Заргужается динамическая библиотека .so с помощью dlopen(). Адрес динамической секции узнать можно, ведь handle, который возвращает dlopen() - это адрес структуры link_map, а в ней есть и адрес динамической секции. Но что, если мне необходимо знать адреса секций data, text и т.д.? Как их можно узнать? Может быть, это можно сделать с помощью какого-то раздела в динамической секции?

Пожалуйста, поделитесь соображениями. Заранее благодарен за помощь.

anonymous

Re: Как узнать адреса секций загруженной с помощью dlopen() либы?

Это нужно шарится в сырье glibc на предмет структуры, которую возвращает dlopen (приводя её к void*).

anonymous ()

Re: Как узнать адреса секций загруженной с помощью dlopen() либы?

Тебе нужно почитать доку, которая описывает ELF формат.

anonymous ()

Re: Как узнать адреса секций загруженной с помощью dlopen() либы?

Да, и еще есть либа которая назывется, то ли libcap, толи libpcap,
которая поставляется с header'ами в которых уже прописаны структуры.

И вопрос - зачем тебе это надо, чё ломаешь?

anonymous ()

Re: Как узнать адреса секций загруженной с помощью dlopen() либы?

Пасиба... в общем, все это я уже перепробовал, есть кое-какие идеи. Вообще говоря, узнать секции по именам в загруженной либе невозможно - нормальным методом. Внутренняя организация структуры, которую возвращает длопен(), может меняться. Я портирую проект компиляторного типа с виндов под линукс.

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