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 нету смысла перехватывать динамические функции, я не для этого хочу загрузить свою либу



Последнее исправление: Hippey (всего исправлений: 2)

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

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

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

Hippey
() автор топика

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

anonymous
()

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

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