Bonsoir,

Je suis sous Mac OS X Yosemite 10.10.3, j'essaye de comprendre la technique du buffer overflow basé sur une pile.
Cependant, mon exemple bien que simpliste ne fonctionne pas car la fonction strcpy me renvoit un abord, est-ce l'OS qui protège la mémoire du programme d'un overflow ?

J'ai essayé de compilé avec gcc -fno-stack-protector mais rien ne change... Comment puis-je testé l'overflow ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
#include <stdio.h>
#include <string.h>
 
main (int argc, char *argv[])
{
	char buffer [256];
	if (argc>1)
		strcpy(buffer, argv[1]);
 
return (0);
Merci pour votre aide.