Éditeurs de liens, chargeurs et exécutables

Quelle est la principale raison de produire un exécutable sous forme de PIE (exécutable indépendant de la position) ?

  1. APour que l'exécutable fonctionne sur tous les OS
  2. BPour inclure toutes les bibliothèques dans l'exécutable
  3. CPour que le code de l'exécutable lui-même puisse aussi être placé à une adresse différente à chaque exécution grâce à l'ASLR
Afficher la réponse et l'explication

Réponse : C. Pour que le code de l'exécutable lui-même puisse aussi être placé à une adresse différente à chaque exécution grâce à l'ASLR

Les anciens exécutables étaient construits pour être chargés à une adresse fixe ; même avec l'ASLR, seules les bibliothèques et la pile pouvaient être décalées, et l'adresse du code principal était connue des attaquants. Le PIE construit aussi le programme principal en code indépendant de la position, fonctionnant quel que soit l'emplacement de chargement, ce qui permet de randomiser aussi son adresse. De nombreuses distributions Linux actuelles utilisent le PIE par défaut.

S'entraîner sur ce thème Retour au thème

Autres questions sur Éditeurs de liens, chargeurs et exécutables

  1. Que fait le chargeur de l'OS au démarrage d'un programme (execve sous Linux notamment) ?
  2. Quelle affirmation concernant l'adresse où l'OS commence l'exécution d'un programme C (point d'entrée) est correcte ?
  3. Lorsque la fonction main d'un programme C se termine par « return 3; », que devient généralement cette valeur 3 ?
  4. Que se passe-t-il lorsqu'on applique la commande strip à un exécutable ?
  5. Quel est le traitement correct d'un symbole faible (weak symbol) par l'éditeur de liens ?

Comparatifs sur ce thème