Sto cercando di sfruttare alcuni buffer overflow attraverso il terminale linux di un programma che ho scritto per l'autoistruzione. Sto inserendo una stringa usnig scanf("%s")
e il mio obiettivo è sovrascrivere l'indirizzo di ritorno sul frame dello stack
il mio problema è il seguente, ho bisogno di sovrascrivere l'indirizzo di ritorno per diventare il valore di 0x08048934
quindi quando si prende in considerazione l'endianità all'interno del mio computer ho bisogno di inserire la sequenza di byte valore esadecimale di
0x34 0x89 0x04 0x08
ed è qui che sto trovando difficoltà .... Mi sembra che non possa entrare direttamente nel terminale di Ubuntu i valori dei caratteri extended-ascii , come quello con il valore di 0x89 o 137 in decimale che è un valore esteso ...
Come faccio a superare questa difficoltà e creare una stringa che contenga i seguenti valori e mi permetta di creare l'indirizzo desiderato
P.S. Quando si usa ctrl
+ shift
+ u
e il valore esadecimale 0x89 il carattere viene codificato come un carattere c1 utf-8 quindi il valore letterale lo ottengo \xc2\x89
anche questo potrebbe non essere chiaro, potrei dipendere da alcune stampe di output del programma come l'indirizzo o ecc, quindi devo digitare il valore manipolato durante il runtime del programma (dopo che ha iniziato l'esecuzione) e non prima