Per quanto riguarda la domanda: Come ASCII-Armoring aiuta a prevenire attacchi buffer-overflow? :
In che modo la regione corazzata previene un attacco?
Se il byte più significativo dell'indirizzo di ritorno è 0x00 , l'autore dell'attacco può ancora modificarlo perché è l'ultimo byte che scrive nel buffer.
Ad esempio: supponiamo che libc:execve risieda in 0x00b1ab1a , ora avendo l'opzione di sovrascrivere il ret della funzione, l'attaccante può riempire gli ultimi 4 byte con 0x1a 0xab 0xb1 0x00 (cioè dove NULL è l'ultimo byte) quindi il reindirizzamento del puntatore all'istruzione è effettivamente danneggiato e va a libc:execve .
Mi sbaglio?