Xgu.ru теперь в Контакте  — приходите и подключайтесь.
Пока мы работаем над следующими видео, вы можете подключиться в Контакте. Познакомимся и обсудим новые страницы и ролики.

Vk-big.pngYoutube-big.jpeg

LD PRELOAD

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

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


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

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

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

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

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

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