Какие разделы необходимы для исполняемого файла ELF? - PullRequest
2 голосов
/ 30 сентября 2010

Я создаю исполняемый файл ELF, и мне нужно знать, какие разделы требуются операционной системе для его загрузки и выполнения.

подробности:

OS:               Ubuntu 10.04 (64-bit)
Kernel version:   2.6.32-24
Architecture:     i386

Я понимаю, что, вероятно, потребуется следующее:

  • .text
  • .symtab
  • .rel.text

Есть ли другие?

Ответы [ 2 ]

4 голосов
/ 30 сентября 2010

«Вихревое руководство по созданию действительно исполняемых ELF-файлов для Linux» содержит информацию о том, как (ab) использовать различные разделы ELF, чтобы сделать исполняемый файл как можно меньшего размера. Он также содержит ссылку на спецификацию ELF, если вам нужна дополнительная информация. (Это также довольно интересное чтение.) Может быть, оно скажет вам, что вам нужно знать?

2 голосов
/ 01 октября 2010

Я решил попробовать систематически удалять разделы из ELF-файла, сгенерированного GCC.

Мне удалось удалить многие из разделов, но они не могли быть удалены, и выполняемый файл все еще выполнялся без ошибки сегментации:

.dynsym
.dynstr
.gnu.version_r
.rel.plt
.init
.plt
.text
.fini
.ctors
.dtors
.dynamic
.got.plt
.data
.strtab
...