Question

Sur Linux, j'essaie de dépouiller un fichier ELF lié statiquement à l'essentiel nu. Quand je cours:

strip --strip-unneeded foo

ou

strip --strip-all foo

Le fichier résultant a toujours une section Fat .Notes qui semble être pleine de cordes funky.

La section .Notes est-elle vraiment nécessaire ou puis-je le forcer en toute sécurité avec la section - Rempove?

Merci pour toute aide.

Était-ce utile?

La solution

De l'expérience et de regarder la page de l'homme pour strip, On dirait strip not censé se débarrasser de toutes les sections et chaînes qui ne sont pas nécessaires; juste symboles. Quoth the Man Page:

   GNU strip discards all symbols from object files objfile.

Cela étant dit, par expérience, strip, même sans --strip-all, supprime les sections inutiles pour le chargement, comme .symtab et .strtab, et vous pouvez, comme vous le notez, supprimer les sections avec lesquelles vous le souhaitez --remove-section.

Comme exemple de .notes Section, j'ai pris /bin/ls De ma boîte Ubuntu 11.10 64 bits:

$ readelf -Wn /bin/ls

Notes at offset 0x00000254 with length 0x00000020:
  Owner                 Data size   Description
  GNU                  0x00000010   NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 2.6.15

Notes at offset 0x00000274 with length 0x00000024:
  Owner                 Data size   Description
  GNU                  0x00000014   NT_GNU_BUILD_ID (unique build ID bitstring)
    Build ID: 3e6f3159144281f709c3c5ffd41e376f53b47952

Qui englobe le .note.ABI-tag Section et la .note.gnu.build-id section. Il semble qu'ils contiennent des données qui ne sont pas nécessaires pour charger le programme, mais non aussi standard, et n'est pas connu par strip Pour ne pas être nécessaire pour le bon fonctionnement du programme, car un ELF peut avoir n'importe quel nombre de sections "inconnues" supplémentaires qui ne sont pas sûres à supprimer. Ainsi, en utilisant une liste blanche virtuelle (qui échouerait lamentablement), il utilise une liste noire de sections dont il sait qu'il peut se débarrasser, et le fait.

Version courte: ces sections ne semblent pas être standard et pourraient être utilisées pour diverses choses, donc strip Je ne sais pas qu'il est sûr de les retirer. Mais sur la base des informations à l'intérieur de celle que j'ai prise au-dessus, si c'est votre propre programme, il est presque certainement sûr de le supprimer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top