Sapendo che l'indirizzo delle variabili sono t=0xbffff7bc b=0xbffff77ccodice:#include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <string.h> void vuln(char *string){ volatile int t; char b[64]; t=0; sprintf(b, string); if (t=0xcafebabe){ printf("ciao"); } } int main(int argc, char *argv){ vuln(argv[1]); }
Come p possibile cambiare il valore di t senza modificare il sorgente?