Sono nuovo per bloccare gli attacchi di overflow e sto cercando di fare lo stesso su un codice di esempio c che ho.
- Ho tre variabili a, b e buffer.
- aeb hanno dei valori assegnati a loro nel codice stesso. buffer Interagisce in modo interattivo con l'input dell'utente. Il valore di "buffer" è non tratto dall'argomento.
- La mia intenzione è quella di sovraccaricare il buffer in modo tale che sovrascriverà b con un valore desiderato. La sovrascrittura di EIP o ESP non è l'intenzione qui.
- Con gdb sono riuscito a capire che se passo un certo numero di valori sovrascriverebbe il valore della variabile b.
- Tuttavia sono bloccato qui perché gdb non mi consente di digitare o incollare il file Caratteri ASCII che corrispondono al valore desiderato di b. Per Ad esempio, considerare 1356 è il valore desiderato. L'esagono per lo stesso è 0x0000054C. Quindi per sovrascrivere b, dovrei dare in ASCII di 4C, 05, 00 e 00 in gdb come gli ultimi quattro byte dell'ingresso rispettivamente. Sfortunatamente questo non è possibile.
- Un altro modo che ho trovato sul web è quello di passare i valori esadecimali usando perl. Tuttavia questo metodo canalizza l'output perl sull'argomento del codice. La variabile che sto traboccando qui prende il suo valore dall'utente inserire mentre si esegue il programma in modo interattivo e non il da argomento del programma.
Esiste un modo per passare valori esadecimali a parametri non di argomento per eseguire un overflow del buffer basato su stack?