Заменить код / ​​текстовый сегмент исполняемого файла ELF - PullRequest
0 голосов
/ 04 июля 2018

Я ищу способ заменить фрагмент кода / текста исполняемого файла ELF перед его выполнением. Это возможно? Если да, есть ли какие-либо утилиты или библиотеки, которые я могу использовать для его замены?

1 Ответ

0 голосов
/ 06 июля 2018

Это возможно, но не тривиально (предупреждаю вас :)). ELF содержит много информации о его содержимом в заголовочных файлах. текст - это просто один раздел в файле ELF. Я тоже пытаюсь это сделать, но пока не удается.

Я не пробовал objcopy для замены текстового сегмента, но попробуйте это. У меня было несколько проблем с этим, поэтому я не продолжил это.

objcopy srcELF--dump-section .text=text.dump

objcopy dstELF --add-section .text=text.dump

Мой предпочтительный способ - использовать libelf .

С помощью libelf вы можете изменить двоичный файл ELF (добавить раздел, изменить данные в разделе и т. Д.). Этот урок дает хорошее начало.

libelf по образцу

...