Lavorando attraverso il corso Modern Binary Exploitation di RPI qui . Sto avendo problemi con un esempio sullo sfruttamento di ASLR che dovrebbe utilizzare una perdita di memoria per ottenere informazioni sullo stack per calcolare l'offset per una chiamata di sistema. Ecco il codice:
#include <stdio.h>
#include <string.h>
/* gcc -pie -fPIE -fno-stack-protector -o aslr_leak2 ./aslr_leak2.c */
int main(int argc, char * argv[])
{
char leaky[16];
if(argc < 2)
{
printf("Please provide two arguments.\n");
return 1;
}
memcpy(leaky, argv[1], 16);
printf("Leaky buffer: %s\n", leaky);
printf("another round? : ");
fgets(leaky, 64, stdin);
return 0;
}
Non sembra un exploit stringa di formato per ottenere la perdita di memoria, quindi non sono sicuro di come dovrebbe funzionare. Se sto capendo correttamente, dovrei ottenere alcune informazioni dalla prima stampa che mi aiuta a sovrascrivere il puntatore di ritorno per creare un gadget ROP da. Sì, posso farlo all'interno di GDB se lo volessi, ma voglio essere in grado di non farlo.