Questa è probabilmente una domanda molto semplice. Ho letto dei canarini e di come funzionano in teoria. Hai una variabile globale che imposti su un numero casuale nel prologo di una funzione, fai la tua funzione e verifica la sua autenticità nell'epilog.
void foobar(int a, int b)
{
prolog();
int c = a;
int d = b;
char *buffer[40];
strcpy(stupidcopy);
epilog();
}
Quello che non capisco è, come faccio a mettere qualcosa in pila in prolog? Ad esempio, se chiamo prologo e dico di salvare una variabile locale, sarà in pila, ma quando usciremo da prolog (), non verrà spuntato? Come posso salvare il canarino in pila? Devo modificare esp usando il codice assembly per farlo?