Stack Frame — Cadre de pile
★★★★★
Structure
Un cadre de pile est la zone allouée à une fonction : variables locales, sauvegarde de RBP, adresse de retour. Comprendre sa disposition est la base de l'exploitation de débordement de tampon.
Disposition (x86-64)
Adresses hautes
[ arguments (au-delà de 6) ]
[ adresse de retour (RIP sauvé) ]
[ RBP sauvegardé ] <- RBP pointe ici
[ variables locales ]
[ buffer[] ] <- RSP (sommet)
Adresses basses (la pile croît vers le bas) Prologue / épilogue
; prologue
push rbp
mov rbp, rsp
sub rsp, 0x20 ; réserve locales
; épilogue
leave ; mov rsp,rbp ; pop rbp
ret ; pop rip