What sections are required for a usable ELF executable?
-
26-09-2019 - |
문제
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?
해결책
"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?
다른 팁
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