我正在創建一個ELF可執行文件,我需要知道操作系統需要哪些部分才能加載和執行它。可用的ELF可執行文件需要哪些部分?
詳情:
OS: Ubuntu 10.04 (64-bit) Kernel version: 2.6.32-24 Architecture: i386
我認識到,下面很可能是必要的:
- 的.text
- 的.symtab
- .rel.text
有其他嗎?
我正在創建一個ELF可執行文件,我需要知道操作系統需要哪些部分才能加載和執行它。可用的ELF可執行文件需要哪些部分?
詳情:
OS: Ubuntu 10.04 (64-bit) Kernel version: 2.6.32-24 Architecture: i386
我認識到,下面很可能是必要的:
有其他嗎?
"A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux "有關於如何(ab)使用各種ELF部分使可執行文件儘可能小的信息。如果您需要更多信息,它還包含指向ELF規範的鏈接。 (這也是一個相當有趣的閱讀。)也許它會告訴你你需要知道什麼?
我決定嘗試系統地從GCC生成的ELF文件中剝離部分。
我能夠除去許多部分,但這些不能被刪除,具有可執行仍執行不分段錯誤:
.dynsym .dynstr .gnu.version_r .rel.plt .init .plt .text .fini .ctors .dtors .dynamic .got.plt .data .strtab
是啊。它非常有幫助!謝謝! – 2010-09-30 20:18:58
嚴格地說,你不需要**任何**部分。動態加載程序使用程序頭來加載文件,而不是節頭。這篇文章確實提到了這一點,但我只是想明確提及它。如果您需要導入符號,可以通過添加PT_DYNAMIC段來完成。 – 2010-10-01 12:22:51