Какие разделы необходимы для использования исполняемого пользователя ELF?
-
26-09-2019 - |
Вопрос
Я создаю файл исполняемого эльфа, и мне нужно знать, какие разделы требуются операционной системой, чтобы загрузить и выполнить ее.
Подробности:
OS: Ubuntu 10.04 (64-bit) Kernel version: 2.6.32-24 Architecture: i386
Я понимаю, что следующее, вероятно, будет необходимо:
- .текст
- .symtab.
- .rel.text.text.
Есть ли другие?
Решение
«Учебное пособие для вихря по созданию действительно Teensy Elf Emputables для Linux» Имеет информацию о том, как (ab) использовать различные разделы эльфов, чтобы сделать исполняемый файл как можно меньше. Он также содержит ссылку на спецификацию ELF, если вам нужна дополнительная информация. (Это также довольно развлекательное чтение.) Может быть, это скажет вам, что вам нужно знать?
Другие советы
Я решил попробовать систематически раздельные секции из эльфионного файла, создаваемого GCC.
Я смог удалить многие из разделов, но они не могут быть удалены и иметь исполняемый файл, еще выполняемый без ошибки сегментации:
.Dynsym .dynstrstr.gnu.version_r .rel.plt .init .plt .text .fini .pistors .dtors .Dynamic .got.plt .data .strtab.