Quando viene richiamata una funzione, diversi elementi vengono inseriti nello stack, in una struttura chiamata stack frame. il registro EBP, chiamato talvolta frame pointer (FP) o vocal base pointer (LB), viene utilizzato per riferirsi a variabili presenti nel frame dello stack corrente.[1]

Ciascuno stack frame contiene i parametri della funzione, le sue variabili locali e due puntatori che sono necessari per ripristinare la situazione iniziale:

  • il saved frame pointer (SFP)
  • l'indirizzo di ritorno

il SFP viene utilizzato per ripristinare EBP sul suo valore precedente, mentre l'indirizzo di ritorno serve ad impostare EIP all'indirizzo dell'istruzione immediatamente successiva a quella di richiamo della funzione.

Se una funzione venisse richiamata dall'interno di un'altra, un nuovo stack frame verrebbe inserito nello stack e il suo indirizzo di ritorno sarebbe l'indirizzo dell'istruzione successiva al richiamo della funzione chiamata, nella funzione chiamante.

Note

  1. ^ Erickson, Jon, criptologo., L'arte dell'hacking : le idee, gli strumenti, le tecniche degli hacker, Apogeo, 2004, ISBN 88-503-2280-1, OCLC 799623398. URL consultato il 1º dicembre 2019.