Ho scoperto che molti meccanismi di protezione sono usati nella sicurezza del computer per garantire l'integrità del flusso di controllo, uno di questi meccanismi è lo stack Shadow:
Il principio è molto semplice e garantisce l'integrità dell'indirizzo di ritorno delle funzioni. In effetti, l'indirizzo di ritorno situato nella pila viene confrontato con quello inserito nello stack shadow.
Esistono diverse implementazioni dello stack Shadow, uno di questi consiste di che modifica la funzione epilogo e prologo (per farlo scrivere nello stack Ombra e caricarlo da esso per il controllo).
La domanda è: se le funzioni nello spazio utente sono autorizzate a scrivere nello shadow stack, come possiamo impedire all'hacker di scrivere / modificare lo Shadow stack?