Подмена shebang

Форум программистов
kaztost
Сообщения: 140
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 04 мар 2018, 11:40

В Termux обнаружил интересный код https://github.com/termux/termux-exec. Идея в перехвате через LD_PRELOAD функции execve() с подменой всех shebang типа "#!/bin/sh" или "#!/usr/bin/python" в запускаемых скриптах.

Мне не совсем понятно, почему не проще глобально изменить все запускаемые скрипты. Для андроида (если есть рут) это вообще не так актуально - можно сделать симлинки /bin ->/opt/bin и /usr->/opt. Но возможно актуально для Entware в роутерах. Тем более в Entware используется свой libc, и функцию execve() можно хакнуть прямо там.

Аватара пользователя
Александр Рыжов
Сообщения: 364
Зарегистрирован: 12 авг 2015, 13:14
Откуда: Смоленск

Сообщение Александр Рыжов » 04 мар 2018, 18:58

Была такая идея, но я счёл её костыльной. Во первых, LD_PRELOAD можем использовться для собственных нужд, а во вторых, это не работает для статических бинарников.


Вернуться в «Собираем софт сами (пакеты, прошивки)»

Кто сейчас на конференции

Всего 0 посетителей :: 0 зарегистрированных, 0 скрытых и 0 гостей (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей