URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 109140
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Отключение LD_PRELOAD в Linux"

Отправлено auto_tips , 18-Сен-16 05:23 
Для блокирования работы переменной окружения LD_PRELOAD, позволяющей принудительно загрузить разделяемую библиотеку со своими обработчиками для функций используемых в программе библиотек, можно использовать следующий скрипт.

ldpreload-disable.sh:

   #!/bin/bash

   if [ $# -lt 1 ];then
    printf "./ldpreload-disable.sh [ld-linux.so] [64|32]\n"
    exit 0
   fi

   ld_linux="$1"
   [ "$2" == "64" ] && xor='\x48' || xor=''

   offset=$((16#$(readelf -s $ld_linux | awk '/do_preload/ {print $2}')))
   printf $xor'\x31\xc0\xc3' | dd conv=notrunc of=$ld_linux bs=1 seek=$offset

Пример использования для 64-разрядной системы:

   $ sudo bash ldpreload-disable.sh $HOME/fedora-chroot/lib64/ld-2.22.so 64

для 32-разрядной системы:

   $ sudo bash ldpreload-disable.sh $HOME/fedora-chroot/lib/ld-2.22.so 32


URL: https://github.com/hc0d3r/ldpreload-disable
Обсуждается: http://www.opennet.dev/tips/info/2988.shtml


Содержание

Сообщения в этом обсуждении
"Отключение LD_PRELOAD в Linux"
Отправлено cmp , 18-Сен-16 05:23 
Судя по версии glibc это делается для отключения недавнего руткита, и что там, что тут нет никакой инфы о том, имеет ли версия glibc значение, как и другой вспогательной инфы, нахрена такие топики писать?

"Отключение LD_PRELOAD в Linux"
Отправлено Нанобот , 20-Сен-16 19:46 
автор применил древнюю чёрную магию для отключения LD_PRELOAD. детки, не пытайтесь повторить это дома.
З.Ы. имхо, стоило бы упомянуть, что это всё будет работать до первого обновления libc

"Отключение LD_PRELOAD в Linux"
Отправлено mezoni , 02-Окт-16 17:02 
Ума-то нет вот и пишут всякую чушь.

"Отключение LD_PRELOAD в Linux"
Отправлено Василий , 21-Сен-16 10:40 
Отличный способ отстрелить себе голову

"Отключение LD_PRELOAD в Linux"
Отправлено Аноним , 25-Сен-16 00:26 
Это что, предлагается хачить бинарник ld.so этим стремным скриптом? После чего как минимум будет обламываться проваерка контрольных сумм пакетником, а если не повезло то система сломается совсем. Виндовозненько.

"Отключение LD_PRELOAD в Linux"
Отправлено Аноним , 27-Сен-16 06:28 
Чего только люди не делают, лишь бы LFS не использовать.

"Отключение LD_PRELOAD в Linux"
Отправлено Аноним , 27-Сен-16 13:10 
Ubuntu Xenial (16.04):
> readelf -s /lib/x86_64-linux-gnu/ld-2.23.so | grep do_preload

пустой вывод


"Отключение LD_PRELOAD в Linux"
Отправлено нет , 07-Окт-16 10:45 
в этом совете хорошо всё: и содержимое и автор в ксакеповской транскрипции. Очень сочетаемо.

"Отключение LD_PRELOAD в Linux"
Отправлено Нониус , 24-Окт-16 14:27 
[ $# -lt 1 ] && \
{ echo "usage: `basename $0` blablabla" ; exit 0 ; }

дальше лень править тупизмы.


"Отключение LD_PRELOAD в Linux"
Отправлено pavlinux , 25-Окт-16 01:26 
pavel@amd64:~$ readonly LD_PRELOAD
pavel@amd64:~$ export LD_PRELOAD=/tmp/libfake.so
bash: LD_PRELOAD: доступная только на чтение переменная

---
ессесенно readonly LD_PRELOAD прописывать в /etc/profile


"Отключение LD_PRELOAD в Linux"
Отправлено freehck , 03-Ноя-16 15:06 
Ага, щас.

1) можно запустить bash --noprofile, и /etc/profile не будет зачитан
2) работа с readonly-переменными окружения зависит от shell. bash вот не позволяет снова сделать её доступной на запись, а вот в zsh можно спокойно написать "typeset +r LD_PRELOAD" и задать её любое новое значение.


"Отключение LD_PRELOAD в Linux"
Отправлено pavlinux , 08-Ноя-16 13:01 
> Ага, щас.
> 1) можно запустить bash --noprofile, и /etc/profile не будет зачитан

еще есть /etc/bash.bashrc, еще парсер написать.