LD PRELOAD

Материал из Xgu.ru

Перейти к: навигация, поиск


LD_PRELOAD — переменная окружения, с помощью которой вы можете указать системному компоновщику времени выполнения(ld.so), что он должен загрузить указанные библиотеки раньше других. В результате можно перехватывать какие-либо функции, и заменять их собственной реализацией.

Понятное дело, что LD_PRELOAD не работает для SUID-ных программ, иначе вы можете представить что бы началось (собственно, на этом бы ничего не началось, а наоборот, всё закончилось), но даже и без этого с его помощь можно делать много веселья.

Самое простое, например, переводить время для отдельных определённых программ [] или заменять реализацию malloc её более быстрым аналогом [1]. Вообще же, пользуясь LD_PRELOAD, вы можете изменять поведение программы без правки её исходного кода и без перекомпиляции.

[править] Дополнительная информация

Другие, более хитрые методы перехвата функций:

[править] Компиляция, линковка, сборка

Источник — «http://xgu.ru/wiki/LD_PRELOAD»