Je veux faire quelques expériences avec des débordements de tampon sur mes différentes machines virtuelles, y compris (mais sans s'y limiter) Debian 6, Ubuntu 12.04, Fedora 16, mais chaque fois que j'essaie d'exécuter l'exploit de débordement de tampon, j'obtiens le message suivant:
stack smashing detected (core dumped)
Après avoir fait mes recherches, j'ai lu qu'il s'agit d'une fonctionnalité appelée protection contre le débordement de tampon implémentée dans le compilateur. GCC utilise par exemple GCC Stack-Smashing Protector (ProPolice) , Clang / LLVM utilise deux détecteurs de débordement de tampon, SafeCode et AddressSanitizer .
Ma question est: comme je veux vraiment vérifier les attaques de débordement de tampon sur mes machines, existe-t-il un moyen (un indicateur de compilateur, peut-être? Un fichier de configuration Linux?) Pour désactiver la protection contre le débordement de tampon?
__stack_chk_fail
(par exemple,strings /bin/mybinary | grep __stack_chk_fail
-fno-stack-protector-all
n'est pas reconnue (-fstack-protector
,-fstack-protector-all
et-fno-stack-protector
sont reconnues)gcc: error: unrecognized command line option ‘-fno-stack-protector-all’; did you mean ‘-fstack-protector-all’?