Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Come risolvere un sovraccarico del buffer

Un sovraccarico del buffer , o buffer overflow , è un problema in cui un programma per computer scrive più dati in un buffer che è stata assegnata per tale buffer. Come risultato , i dati vengono scritti una porzione adiacente di memoria , potenzialmente a sovrascrivere altri dati . Ciò può causare il programma di agire in modo irregolare, causando potenzialmente il crash . Esso può anche essere sfruttato per innescare l'esecuzione di un programma dannoso . Come tale, è sempre consigliabile per evitare buffer overflow in un programma. Cose che ti serviranno
codice sorgente che contiene il buffer overflow
compilatore per il linguaggio di quel codice sorgente
Show More Istruzioni
1

Affina la tua ricerca . È possibile farlo con le informazioni di debug di stampa e impedendo parti del programma da eseguire . Buffer overflow possono essere difficili da rintracciare perché la prova non è sempre coerente . Tuttavia, se le prove si dispone scompare quando una parte del programma viene impedito di correre , è una buona indicazione che il problema sia quella porzione .
2

leggere il codice sorgente . Una volta che avete abbastanza ristretto la ricerca , guarda attraverso il codice sorgente di qualcosa che potrebbe potenzialmente causare un overflow . A volte è in un ciclo che scrive oltre la lunghezza di una matrice . A volte è una concatenazione di stringhe in una stringa più grande del buffer allocato per quella stringa .
3

Fissare la falla . Se il problema stava scrivendo passato i limiti di un array , assicurarsi che qualunque cosa ha causato che funziona correttamente , o che l'array sia correttamente ridimensionata come necessario. Assicurarsi che tutti i buffer di stringa sono grande abbastanza per contenere le stringhe possono contenere .
4

prendere misure preventive . Utilizzare bounds-checking funzioni in modo da garantire che la memoria non è mai sovrascritto . Dinamicamente ridimensionare gli array , se necessario. Tenere traccia accurata di tutto il potenziale di memoria scrive per garantire che essi non scrivono la zona sbagliata della memoria .

 

Programmazione © www.354353.com