GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Comment tester si un binaire Linux a été compilé en tant que code indépendant de la position ?

J'ai récemment appris que (au moins sur Fedora et Red Hat Enterprise Linux), les programmes exécutables compilés en tant qu'exécutables indépendants de la position (PIE) bénéficient d'une protection renforcée contre la randomisation de l'espace d'adressage (ASLR).

Alors :comment tester si un exécutable particulier a été compilé en tant qu'exécutable indépendant de la position, sous Linux ?

Réponse acceptée :

Vous pouvez utiliser le perl script contenu dans le hardening-check package, disponible dans Fedora et Debian (en tant que hardening-includes ). Lisez cette page du wiki Debian pour plus de détails sur les drapeaux de compilation vérifiés. C'est spécifique à Debian, mais la théorie s'applique également à Red Hat.

Exemple :

$ hardening-check $(which sshd)
/usr/sbin/sshd:
 Position Independent Executable: yes
 Stack protected: yes
 Fortify Source functions: yes (some protected functions found)
 Read-only relocations: yes
 Immediate binding: yes

Linux
  1. Comment Linux a préparé une école à la pandémie

  2. Comment désassembler, modifier puis réassembler un exécutable Linux ?

  3. Comment garder le code exécutable en mémoire même sous pression mémoire ? sous Linux

  4. Comment identifier si mon ordinateur Linux a été piraté ?

  5. Comment tester si un binaire Linux a été compilé en tant que code indépendant de la position ?

Comment je joue à Tetris sur le mainframe

Comment apprendre Linux est notre langage amoureux

Comment le bureau Linux s'est développé

Comment utiliser les opérateurs de test de fichiers Bash sous Linux

Comment rendre un fichier exécutable sous Linux

Un exécutable Linux compilé sur une version de Linux fonctionnera-t-il sur une autre ?