What sections are required for a usable ELF executable?

限于喜欢 提交于 2019-12-12 17:15:13

问题


I'm creating an ELF executable file and I need to know what sections are required by the operating system in order to load and execute it.

Details:

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

I realize that the following would probably be necessary:

  • .text
  • .symtab
  • .rel.text

Are there others?


回答1:


"A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux " has information on how to (ab)use the various ELF sections to make an executable as small as possible. It also contains a link to the ELF specification if you need more information. (It's also a fairly entertaining read.) Maybe it will tell you what you need to know?




回答2:


I decided to try systematically stripping sections from an ELF file generated by GCC.

I was able to remove many of the sections, but these could not be removed and have the executable still execute without a segmentation fault:

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


来源:https://stackoverflow.com/questions/3832801/what-sections-are-required-for-a-usable-elf-executable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!