Sto cercando di implementare return-to-libc,
ecco il codice
void func(const char *str) {
char buf[4];
strcpy(buf,str);
printf("you entered [%s]\n",buf);
}
int main(int argc, char *argv[]) {
if(argc != 2) {
printf("Need an argument\n");
return 0;
}
func(argv[1]);
return 0;
}
Ora il problema è che l'indirizzo della funzione system
che il mio pc mi dà è di 6 cifre esadecimali invece di 8 cifre esadecimali (il che significa che le due cifre anteriori sono zero), ma io uso strcpy per copiare la stringa , che termina copiando la stringa non appena incontra un carattere nullo.
Qualche idea su come copiare l'intera stringa che passo, incluso il carattere null?
O tutto ciò che ritieni possa aiutarmi con questo, è apprezzato.