Pergunta

Estou criando um arquivo executável ELF e preciso saber quais seções são exigidas pelo sistema operacional para carregá-lo e executá-lo.

Detalhes:

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

Sei que provavelmente seria necessário o seguinte:

  • .texto
  • .symtab
  • .rel.texto

Existem outros?

Foi útil?

Solução

"Um tutorial Whirlwind sobre como criar executáveis ​​ELF realmente pequenos para Linux" contém informações sobre como (ab)usar as diversas seções ELF para tornar um executável o menor possível.Ele também contém um link para a especificação ELF se você precisar de mais informações.(Também é uma leitura bastante divertida.) Talvez lhe diga o que você precisa saber?

Outras dicas

Decidi tentar remover sistematicamente seções de um arquivo ELF gerado pelo GCC.

Consegui remover muitas das seções, mas elas não puderam ser removidas e o executável ainda é executado sem uma falha de segmentação:

.dynsym
.dynstr
.gnu.version_r
.rel.plt
.init
.plt
.text
.fini
.ctors
.dtors
.dynamic
.got.plt
.data
.strtab
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top