Un sovraccarico del buffer può verificarsi durante l' esecuzione di un programma in cui una struttura dati del buffer destinato a gestire l'input dell'utente è dato troppi dati da gestire. Ad esempio, un programmatore potrebbe dichiarare una struttura a matrice che contiene i caratteri di prendere in user dati di login . Il programmatore può scegliere di limitare la dimensione della matrice a 25 caratteri . Se il programmatore non mette alcuna garanzia in essere , l'utente può inserire una quantità arbitraria di dati , come un nome di accesso . Quando l'utente fa questo , i caratteri aggiuntivi oltre 25 invase lo spazio di memoria dei dati di matrice e corrotti in locazioni di memoria adiacenti. Questo è chiamato un sovraccarico del buffer .
Sovraccarichi del buffer e Sicurezza
hacker possono usufruire di sovraccarichi del buffer di modificare il percorso di esecuzione del programma. Se un hacker sa come funziona un programma , quindi sa anche che tipo di dati sono vicino alla matrice di caratteri . In programmazione C , le variabili e riferimenti funzionali vengono memorizzati nella memoria . Se una variabile o una funzione di riferimento risiede vicino alla matrice , un hacker può eccedere la matrice in modo tale da modificare il valore di una variabile , in modo che permetterà la login di false credenziali. L'hacker può anche alterare la funzione in modo che venga eseguito codice dannoso , e permette l'hacker nel sistema .
Format Strings
A " stringa di formato " rappresenta un particolare argomento in dotazione per le funzioni di ingresso e uscita in C. per esempio, la funzione "printf ()" prende come primo argomento una stringa di formato che descrive come l' output dovrebbe essere per l'utente. A seguito di questo , la funzione printf ( ) prende una lista variabile di argomenti che rappresentano i dati per l'output formattato con la stringa di formato . In questo esempio i seguenti dati come una stringa di formato funziona nel contesto, con una stringa di formato che contiene un carattere di formato ( " % d" ), che significa che un argomento intero sostituirà quel carattere nell'output :
printf ( " Questo è la stringa di formato , seguita da un numero intero di stampare % d " , 56) ;
stringhe di formato e
problemi di sicurezza stringa di protezione
format si verificano quando un utente riesce ad ingresso un formato stringa contenente caratteri di formattazione non previsto dal programmatore . Quando a) la funzione printf ( viene chiamata , la stringa di formato e gli argomenti lo seguono vengono spinti nella memoria , e la funzione di "passeggiate " attraverso la memoria , sostituendo tutti i caratteri di formattazione con i valori nei corrispondenti indirizzi di memoria . Se un inserto di hacker formattazione di caratteri in una stringa , che può forse leggere i valori dei dati che si trovano da nessuna parte vicino alla pila - e se lei può leggere la pila , lei sa come e dove cambiare i dati e manipolare l'esecuzione del programma
.
Programmazione © www.354353.com