LINUX.ORG.RU

Вызов функций из уже загруженной SO


0

1

Необходимо вызвать несколько функций из находящейся в памяти процесса SO и изменить в ней несколько переменных. Проблема в том, что библиотека уже загружена в память, и хендла к ней нет. Работаю из другой библиотеки. Неплохо было бы найти какой-нибудь аналог GetModuleHandle. Или узнать точку входа этой библиотеки, тогда все функции и переменные можно будет легко достать по смещению (оно известно)


А разве пути к файлу/имени библиотеки недостаточно? Или это недоступно по условию?

LinkFly
()

Проблема в том, что библиотека уже загружена в память, и хендла к ней нет.

Если её опять загрузить (dlopen, когда она уже загружена) - ничего страшного не будет, просто получим хендл, а дальше уже как обычно (dlsym).

man dlopen

The dlopen subroutine loads the module specified by FilePath into the executing process's address space. Dependents of the module are automatically loaded as well. If the module is already loaded, it is not loaded again, but a new, unique value will be returned by the dlopen subroutine.

quasimoto ★★★★
()

Всем спасибо! Попробую.

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