Подмена shebang

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

Сообщение kaztost » 04 мар 2018, 12: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() можно хакнуть прямо там.

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

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

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


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

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

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

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