我正在创建一个精灵可执行文件,我需要知道操作系统需要哪些部分才能加载和执行。

细节:

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

我意识到以下内容可能是必要的:

  • 。文本
  • .symtab
  • .rel.text

还有其他吗?

有帮助吗?

解决方案

“关于为Linux创建真正十几个精灵可执行文件的旋风教程” 有有关如何(AB)使用各个ELF部分的信息,以使可执行文件尽可能小。如果您需要更多信息,它还包含指向ELF规范的链接。 (这也是一本相当有趣的阅读。)也许会告诉您您需要知道什么?

其他提示

我决定尝试从GCC生成的ELF文件系统地剥离部分。

我能够删除许多部分,但是这些部分无法删除,并且在没有分段错误的情况下仍能执行可执行文件:

.dynsym
.dynstr
.gnu.version_r
.rel.plt
.init
.plt
.text
.fini
.ctors
.dtors
.dynamic
.got.plt
.data
.strtab
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top