web-dev-qa-db-fra.com

Quels sont les exécutables dépouillés et non dénudés à UNIX?

De - fichier man ,

EXAMPLES
   $ file file.c file /dev/{wd0a,hda}
   file.c:   C program text
   file:     ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
             dynamically linked (uses shared libs), stripped
   /dev/wd0a: block special (0/0)
   /dev/hda: block special (3/0)
   $ file -s /dev/wd0{b,d}
   /dev/wd0b: data
   /dev/wd0d: x86 boot sector
   $ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
   /dev/hda:   x86 boot sector
   /dev/hda1:  Linux/i386 ext2 filesystem
   /dev/hda2:  x86 boot sector
   /dev/hda3:  x86 boot sector, extended partition table
   /dev/hda4:  Linux/i386 ext2 filesystem
   /dev/hda5:  Linux/i386 swap file
   /dev/hda6:  Linux/i386 swap file
   /dev/hda7:  Linux/i386 swap file
   /dev/hda8:  Linux/i386 swap file
   /dev/hda9:  empty
   /dev/hda10: empty

   $ file -i file.c file /dev/{wd0a,hda}
   file.c:      text/x-c
   file:        application/x-executable, dynamically linked (uses shared libs),
   not stripped
   /dev/hda:    application/x-not-regular-file
   /dev/wd0a:   application/x-not-regular-file

Que signifie le décapage exécutable?

Pourquoi certains des exécutables sont-ils dépouillés alors que d'autres ne sont pas?

38
Lazer

Si vous compilez un exécutable avec le drapeau-g de GCC, il contient des informations de débogage. Cela signifie que pour chaque instruction, il existe des informations que la ligne du code source généré, le nom des variables du code source est conservé et peut être associé à la mémoire correspondante au moment de l'exécution, etc. Strip peut supprimer ces informations de débogage et d'autres données incluses. dans l'exécutable qui n'est pas nécessaire à l'exécution afin de réduire la taille de l'exécutable.

51
fschmitt