バッファオーバーフローとは何ですか?
バッファオーバーフローは、プログラムがバッファーに書き込もうとし、境界の外側に踏み込んでいるときに発生し、プログラムの記憶情報をメモリに執筆している可能性があることをメモリに書き込みます。これは、オペレーティングシステム内のメモリの完全性に違反し、その結果、実行プログラムの重大なエラーと潜在的なクラッシュが生じます。バッファオーバーフローの主な危険は、2つの主要な要素から来ています。まず、バッファーの外側に記載されている情報は、表面上は「失われています」。コンピューターのメモリマップ(メモリロケーションのリスト)が説明できないためです。第二に、バッファオーバーフローは、別のプログラムのメモリに保存された情報を誤って上書きし、別のプログラムの実行を効果的に妨害する可能性があります。
a "バッファー」は、コンピューターがあるポイントから別のポイントに情報を転送している間、一時的なストレージ場所として使用されるメモリの領域です。バッファーの最も一般的な使用は、通常、ビデオまたはオーディオの再生にあり、COがMPUTERは、メモリ内のフッテージまたはオーディオの追加x秒をキューアップし、システムに何かが一時的に間違っている場合、再生が中断されないようにします。バッファーは、マップに描かれた境界線内にのみ存在する国のように、コンピューターのメモリ内の特定の事前に決められた場所内にのみ存在します。これらの仮想「ライン」の外に出ると、プログラムが実行されているだけでなく、システム上の他のプログラムの問題が発生します。
本質的に、プログラムは割り当てられた管轄外に踏み込み、別の作業プログラムのスペースに侵入しました。これが発生すると、バッファーの外側に記述された情報は、コンピューターのマップから効果的に落ちます。言い換えれば、システムにはそれを取得する方法がなくなりました。コンピューターは、メモリに割り当てられた特定のバッファースペース内でバッファリングされた情報を検索するためだけに「知っている」ため、把握する方法はありませんオーバーフローされた情報がどこに行ったのか。
これに加えて、バッファオーバーフローには、コンピューターで実行されている他のプログラムを混乱させる可能性があります。バッファの両側にあるメモリストレージスペースが、すでに他の実行プログラムに割り当てられていると想像してください。バッファーの情報が設計された領域を通過すると、メモリのセクションに既に保存されている情報を上書きして破損します。したがって、バッファオーバーフローは、隣接するプログラムの有効性を損なう可能性のある問題であり、独自の操作を破壊する可能性があります。