In neueren Distributionen (Stand 2016) scheint PIE standardmäßig aktiviert zu sein, sodass Sie es beim Kompilieren explizit deaktivieren müssen.
Hier ist eine kleine Zusammenfassung der Befehle, die beim lokalen Spielen mit Pufferüberlaufübungen im Allgemeinen hilfreich sein können:
Kanarienvogel deaktivieren:
gcc vuln.c -o vuln_disable_canary -fno-stack-protector
DEP deaktivieren:
gcc vuln.c -o vuln_disable_dep -z execstack
PIE deaktivieren:
gcc vuln.c -o vuln_disable_pie -no-pie
Deaktivieren Sie alle oben aufgeführten Schutzmechanismen (Warnung: nur für lokale Tests):
gcc vuln.c -o vuln_disable_all -fno-stack-protector -z execstack -no-pie
Bei 32-Bit-Computern müssen Sie den -m32
Parameter ebenfalls hinzufügen .