Ich möchte einige Experimente mit Pufferüberläufen auf meinen verschiedenen virtuellen Maschinen durchführen, einschließlich (aber nicht beschränkt auf) Debian 6, Ubuntu 12.04, Fedora 16, aber jedes Mal, wenn ich versuche, den Pufferüberlauf-Exploit auszuführen, erhalte ich die folgende Meldung:
stack smashing detected (core dumped)
Nach meinen Recherchen habe ich gelesen, dass es sich um eine Funktion handelt, die als Pufferüberlaufschutz bezeichnet wird und im Compiler implementiert ist. GCC verwendet beispielsweise GCC Stack-Smashing Protector (ProPolice) , Clang / LLVM verwendet zwei Pufferüberlaufdetektoren, SafeCode und AddressSanitizer .
Meine Frage ist: Gibt es eine Möglichkeit (ein Compiler-Flag, vielleicht? Eine Linux-Konfigurationsdatei?), Den Pufferüberlaufschutz zu deaktivieren, da ich wirklich Pufferüberlauf-Angriffe auf meinen Computern überprüfen möchte .
__stack_chk_fail
(z. B.strings /bin/mybinary | grep __stack_chk_fail
-fno-stack-protector-all
nicht erkannt wird (-fstack-protector
,-fstack-protector-all
und-fno-stack-protector
anerkannt ist)gcc: error: unrecognized command line option ‘-fno-stack-protector-all’; did you mean ‘-fstack-protector-all’?