LD_PRELOAD с несколькими общими библиотеками, но работает только одна, помогите отладить - PullRequest
0 голосов
/ 31 октября 2019

У меня есть две общие библиотеки: одна для перехвата ввода данных пользователем в конкретном двоичном файле, а другая для перехвата вызовов для / bin / ls. Давайте назовем эти shared1.so & shared1.so

Я использую pam_environment с LD_PRELOAD

Тестовый случай: LD_PRELOAD = / shared1.so <- это работает </p>

Тестовый случай: LD_PRELOAD = / shared2.so <- это работает </p>

Тестовый случай: LD_PRELOAD = / shared1.so: /shared2.so <- работает только shared2.so </p>

Контрольный пример: LD_PRELOAD = / shared2.so: /shared1.so <- Работает только shared2.so </p>

ldconfig -v|grep shared * <- показывает обе загруженные библиотеки </p>

Интересно, как загрузить обе библиотеки одновременно, есть ли вероятность конфликта или у меня неправильная настройка?

в зависимости от способа использованиядля компиляции: gcc -Wall -shared -fPIC shared1.c -o shared1.so -ldl

возможно, в gcc мне нужно добавить дополнительный переключатель

...