LINUX.ORG.RU

Как заставить статический ELF файл грузить LD_PRELOAD

 , ,


0

2

Здравствуйте!

Такая проблема, имею статический бинарник без исходов, мне надо заставить его грузить LD_PRELOAD либу, но так как этот бинарник скомпилирован статически, сегменты .dynamiс, секции .dymsym и так далее отсутствуют понятно что LD_PRELOAD игнорится при запуске.

И вот теперь вопрос, как же заставить его все таки загрузить LD_PRELOAD либу? Сразу подумал, что проще всего отредактировать ELF заголовки и добавить фейковый динамический сегмент и секции, чтобы лоадер подумал, что это динамический бинарник, уже третий день с утра до ночи пытаюсь найти рабочий софт, который смог бы такое сделать, как я знаю надо юзать elfsh, но никак не пойму как заставить его работать, документации очень мало, может кто помочь?

Надо сделать фейковые записи в elf, чтобы подгружался лоадер. Или может есть другие способы? Инжект пробовал, используя ptrace, только вот такие инжекты юзают dlopen, а его то нету, libc не грузится, да и вообще не то это.

p.s. я знаю, что в LD_PRELOAD нету смысла перехватывать динамические функции, я не для этого хочу загрузить свою либу


Да же если Вы отредактируете заголовок, это ничего не изменит, ведь у нет таблицы импорта.

robot12 ★★★★★ ()
Ответ на: комментарий от robot12

Так а создать ее можно? Ну и вопрос не только о редактировании elf, может есть другие рабочие способы заинжектить либу

Hippey ()

Вставить в код dlopen(getenv(«LD_PRELOAD»...

anonymous ()

Без PT_INTERP хидера, ясно, что смысла в остальном нет

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.