Se ti riferisci al buffer overrun, non serve per vedere i sorgenti, perchè comunque una volta compilato un sorgente non è possibile, automaticamente o comunque con facilità, decompilare il codice oggetto.
Il problema delle sicurezza sta nel fatto che la funzione scanf non potrebbe effettuare controlli su input mal formati.
Questo è un esempio di funzione vulnerabile agli overrun, infatti non verifica se <nome>, supera i confini della variabile <tmp> allocata sullo stack e quindi sforando questi confini è possibile sovrascrivere l'indirizzo di ritorno della funzione sullo stack, in modo da fare eseguire del codice alla tua applicazione.
tra l'altro, ecco perchè anche strcpy è sconsigliata, di solito gcc da dei warning proprio in questo sensocodice:void get_input(char* name) { char tmp[16]; strcpy(tmp, name); ... /* processa tmp */ ... }