Какие разделы необходимы для исполняемого файла ELF?
Я создаю исполняемый файл ELF, и мне нужно знать, какие разделы требуются операционной системе для его загрузки и выполнения.
Подробности:
ОС: Ubuntu 10.04 (64-разрядная версия) Версия ядра: 2.6.32-24 Архитектура: i386
Я понимаю, что, вероятно, будет необходимо следующее:
- .текст
- .symtab
- .rel.text
Есть ли другие?
2 ответа
"Вихревое руководство по созданию действительно исполняемых исполняемых файлов ELF для Linux " содержит информацию о том, как (ab) использовать различные разделы ELF, чтобы сделать исполняемый файл как можно меньшего размера. Он также содержит ссылку на спецификацию ELF, если вам нужна дополнительная информация. (Это также довольно интересное чтение.) Может быть, оно скажет вам, что вам нужно знать?
Я решил попробовать систематически удалять разделы из файла ELF, сгенерированного GCC.
Мне удалось удалить многие разделы, но они не могли быть удалены, и исполняемый файл все еще выполнялся без ошибки сегментации:
.dynsym.dynstr.gnu.version_r.rel.plt.в этом.plt.текст.fini.ctors.dtors.dynamic.got.plt.данные.strtab