2 votes

Randomisation de la disposition de l'espace d'adressage (ALSR) sur macOS

J'ai une question sur la randomisation de l'espace d'adressage (ALSR) sur macOS. Selon Apple (2016), " Si vous compilez un exécutable qui cible macOS 10.7 et plus ou iOS 4.3 et plus, les drapeaux nécessaires [pour l'ASLR] sont activés par défaut ". Dans l'esprit de la science, j'ai décidé de tester cela sur Xcode 11.3 et macOS Catalina 10.15.2 avec le programme suivant :

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int stack = 0;
    printf("%p\n", &stack);
    return 0;
}

Selon Arpaci-Dusseau & Arpaci-Dusseau (2018), avec l'ASLR activé, ce programme devrait produire une adresse virtuelle différente à chaque exécution (p. 16). Cependant, chaque fois que j'exécute le programme dans Xcode, la sortie est la même, par exemple :

0x7ffeefbff52c
Program ended with exit code: 0

Qu'est-ce que je rate ?

Références

Pomme. (2017). Éviter les débordements et les sous-exécutions de mémoire tampon. Récupéré de https://developer.apple.com/library/archive/documentation/Security/Conceptual/SecureCodingGuide/Articles/BufferOverflows.html

Arpaci-Dusseau, R. H., & Arpaci-Dusseau, A. C. (2018). Systèmes complets de mémoire virtuelle. Dans Systèmes d'exploitation : Trois pièces faciles . Récupéré de http://pages.cs.wisc.edu/~remzi/OSTEP/vm-complete.pdf

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X