Stavo provando a tentare un attacco di overflow del buffer return-to-libc per l'assegnazione della sicurezza del mio Software Computer. Per quanto ne so, possiamo fare questo tipo di attacchi indipendentemente dalle misure di protezione dello stack come canaries e non-executable stack . Questo perché le funzioni libc non risiedono nello stack e abbiamo solo bisogno di spostare il flusso di controllo del nostro programma sovrascrivendo l'indirizzo di ritorno con libc function address e passando argomenti appropriati. Questa figura sembra riassumere la procedura immagino.
Qual è il mio dubbio, secondo il figura per la seconda parte, è il frame dello stack dato per la funzione libc o è solo per una funzione definita nel programma dell'utente stesso? Non riesco a capire il bisogno di fake_ret . Non possiamo semplicemente sovrascrivere l'indirizzo di ritorno della nostra funzione sovrascrivendo EIP con l'indirizzo di dire unlink e gli argomenti possono essere inseriti nel buffer di funzione dell'utente che può essere utilizzato per passare alla funzione unlink ? < br>
Si noti che con l'uso dell'utente (qualcosa), mirano a indicare (qualcosa) che è definito dall'utente stesso nel suo programma. Grazie.