#include<iostream>autof1(){chara[]={'s','e','c','r','e','t','0円'};std::cout<<a<<"\n";}autof2(){chara[8];std::cout<<a<<"\n";// today this likely prints "secret"}autof3(){chara[]={'0','1','2','3','4','5','0円'};std::cout<<a<<"\n";// overwrites "secret" (if only just)}intmain(){f1();f2();f3();}
L'appel à f2() est susceptible de récupérer la mémoire de la pile de l'appel à f1 tel quel ... et donc avec les données non effacées, et donc récupérer le secret. Ça n'a pas l'air bon pour la sécurité effectivement.
[^] # Re: Confus
Posté par thoasm . En réponse au lien Ça veut dire quoi, initialiser un int ?. Évalué à 5.
Code extrait de l'article du lien
L'appel à f2() est susceptible de récupérer la mémoire de la pile de l'appel à f1 tel quel ... et donc avec les données non effacées, et donc récupérer le secret. Ça n'a pas l'air bon pour la sécurité effectivement.