Как стать автором
Обновить
27
0

Пользователь

Отправить сообщение
Спасибо за интересную статью!

[оффтоп]
    Не подскажите, чем вы подсвечивали исходник в статье?
[/оффтоп]
Опередили ниже :)
Логотип халвы на 3-й картинке багом считается? Если да, то 2/3.
Не знаю, почему, но эту новость я читал с улыбкой. Пусть оба проекта и компания, их объединившая, живут, процветают и делают работу простых смертных удобной.

P.S. Пафосно, но иначе сказать не могу.
>Теперь динамик можно откусить

Чем-то напомнило…
Элитный вирус
Спасибо за ссылку, интересная штука.

Конечно, можно (и даже нужно, ибо правильнее) сделать красивую обертку, написать парсер конфига, man-страницу и прочее… Но ведь целью было не создание полноценного файрвола, а создание препятствия для одного-единственного скрипта, а также простой пример перехвата.

А для того, чтобы не «потерять» этот файрвол в системе, достаточно использовать LD_PRELOAD не для всей системы, а непосредственно перед вызовом скрипта, тогда найти и устранить проблему не будет слишком сложно.

А с проверкой действительно сплоховал. Безусловно, там стоило ее поставить.
Если верить man'у и методу тыка, то ни RTLD_CONNECT, ни RTLD_GLOBAL функции dlsym не передаются. Передавать ей можно либо RTLD_DEFAULT, либо RTLD_NEXT.

Если использовать первый, то точка входа будет искаться в нормальном порядке, т.е. сначала в нашей билиотеке, затем во всех остальных. А поскольку в нашей библиотеке есть эта точка входа, то именно она и вызовестся. Что произойдет в таком случае? Правильно, бесконечная рекурсия.

Для того, чтобы этого не было и стоит использовать RTLD_NEXT, который «пропускает» нашу библиотеку и поиск начинает со следующей в списке.

А вот насчет проверки возвращаемого значения действительно проглядел, каюсь.
Да, ваше решение действительно элегантнее. Но есть одна неувязка: что делать, если программа, которую нужно блокировать, будет запускаться от разных пользователей/групп?

В старых версиях ядра была такая опция, как --pid-owner и --cmd-owner. Теперь их, к сожалению, убрали.
12 ...
60

Информация

В рейтинге
Не участвует
Откуда
Одесса, Одесская обл., Украина
Зарегистрирован
Активность