Jump to content

Statically-linked приложение


Recommended Posts

Здравствуйте, подскажите пожалуйста каким образом можно подключить свою библиотеку в уже скомпилированное statically-linked приложение, либо внедрить ее в уже запущенный экземпляр этого приложения?

Заранее спасибо.

Link to comment
Share on other sites

Tsar писал(а) Mon, 10 January 2011 14:24

Здравствуйте, подскажите пожалуйста каким образом можно подключить свою библиотеку в уже скомпилированное statically-linked приложение, либо внедрить ее в уже запущенный экземпляр этого приложения?

Заранее спасибо.

В общем - для статики никак.

Link to comment
Share on other sites

Но может быть, есть какой-то способ внедрить библиотеку в уже запущенный экземпляр приложения, используя механизм ptrace, например, вызвав внутреннюю функцию _libc_dlopen_mode, которая входит в состав libc и уже находится в приложении. На самом деле были попытки организовать такой вызов, но функция при любых параметрах возвращает ошибку с текстом "cannot open shared object file". Но, может, все же есть какие-то шансы. Еще есть идея изменить программу, переписав весь машинный код в заранее подготовленную dynamically-linked программу. А уже потом подгружать библиотеку с помощью стандартных средств типа переменной окружения LD_PRELOAD. Может быть, это окажется реальным?

Link to comment
Share on other sites

Трудно понять, чего вы добиваетесь.

У вас нет исходников и при этом вы хотите изменить функционал бинарной программы подменой библиотеки?

Если так, то очень оригинально, и Вам написали, что при статической сборке это вряд ли возможно.

Разве что вызовы ядра будете подменять? )))

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...