LINUX.ORG.RU

Можно ли подменить динамический загрузчик?


0

0

Т.е. екзешник/shared библиотека слинкованы так, что используют /lib/ld-linux.so.2. А хочется запустить всё это дело под кастомной libc, установленной в кастомную директорию вместе с кастомным же ld-linux.so.2. Можно ли?..

Спасибо!

anonymous

Re: Можно ли подменить динамический загрузчик?

Я не уверен, но мне помнится, /lib/ld-linux.so.2 всегда прописывается прямо в файле, так что увы...

Die-Hard ★★★★★ ()

Re: Можно ли подменить динамический загрузчик?

Попробуй с помощью chroot. Только нужно будет продублировать в новом корне все, что нужно этому экзешнику

kosmonavt ()

Re: Можно ли подменить динамический загрузчик?

Из командной строки: /path/to/new/ld-linux.so.2 /path/to/executable

bd ()

Re: Можно ли подменить динамический загрузчик?

Кстати, никто не пробовал на место /lib/ld-linux.so.2 всунуть скрипт (или, если скрипт нельзя, то простенькую программу), которая в зависимости от настроек (ну, переменные окружения, например) вызывала бы различные кастомные ld-linux.so.2, подсовывая им свои аргументы?

Die-Hard ★★★★★ ()

Re: Можно ли подменить динамический загрузчик?

> на место /lib/ld-linux.so.2 всунуть скрипт ...
> вызывала бы различные кастомные ld-linux.so.2

не думаю, что это имеет смысл. как мы можем вызвать
ld-linux.so.2 ? только exec(). а что станет с текущим
процессом (в контекст которого грузится наш interpreter)
после еще одного exec() ?

легче заменить само приложение скриптом, который вызывает
нужный ld-linux.

idle ★★★★★ ()

Re: Можно ли подменить динамический загрузчик?

>Т.е. екзешник/shared библиотека слинкованы так

Если цель - relocatable, то можно сделать ld --dynamic-linker=/.../myrtld myprog -o myprog_myrtld

Если же это не так(что почти наверняка), то или надо отталкиваться от того, что запущен будет именно /lib/ld-linux.so.2 или же поправить linker ручками в коде соответствующего executable(если по ширине влезет). :)

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