j'ai crée ce petit programme en C car je souhaitais voir de manière concrète (après avoir vu de manière théorique) ce qu'il se passait lors de la réalisation d'un buffer overflow. Dites moi ce que vous en pensez s'il vous plait . Il est largement améliorable, je compte notamment ajouter la prise en compte automatique des dimensions des tableaux avec une fonction qui compterait le nombre d'éléments etc.....mais voila sur le principe qu'en pensez-vous ?
#include <stdio.h>
#include <stdlib.h>
int afficheTabNom(char tableau[]);
int afficheTabPrenom(char tableau[]);
int verifHack(char tabNom[]);
int main()
{
char tabNom[]="dumo";
char tabPrenom[]= "john";
printf("*****JEU du Buffer Overflow*****\n");
printf("***CONSIGNES***\n\n");
printf("Le but de ce jeu est de realiser un buffer overflow.\n");
printf("Votre mission est de reussir a modifier l idendite de %s %s en john hack.\n\n",tabPrenom, tabNom);
printf("***A VOUS DE JOUER***\n\n");
printf("\n%s",afficheTabPrenom(tabPrenom));
printf("\n%s",afficheTabNom(tabNom));
printf("\nPrenom:\n");
scanf("%s",tabPrenom);
printf("\n%s",afficheTabPrenom(tabPrenom));
printf("\n%s",afficheTabNom(tabNom));
printf("\n\nNouvelle idendite: john %s ",tabNom);
printf("\n\n%s",verifHack(tabNom));
return 0;
}
int afficheTabNom(char tabNom[])
{
int i=0;
printf("\n\nDecomposition du nom:");
for (i = 0; i <= 4; i++)
{
printf("\n\nadresse memoire de tabNom[%d] = %d et valeur=%c",i,&tabNom[i],tabNom[i]);
}
return 0;
}
int afficheTabPrenom(char tabPrenom[])
{
int i=0;
printf("Decomposition du prenom:");
for (i = 0; i <= 4; i++)
{
printf("\n\nadresse memoire de tabPrenom[%d] = %d et valeur=%c",i,&tabPrenom[i],tabPrenom[i]);
}
return 0;
}
int verifHack(char tabNom[])
{
if (tabNom[0] == 'h'&& tabNom[1] == 'a'&& tabNom[2] == 'c'&& tabNom[3] == 'k' && tabNom[4] == '\0' )
{
printf("\nbien joue, vous avez effectue un buffer overflow !\n");
}
else
{
printf("\nEchec, le nom de famille de john n'est pas 'hack' !\n");
}
return 0;
}
- Edité par Marcscream 8 juillet 2019 à 13:36:15
mini-jeu HACK Buffer Overflow
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.