-1

なぜDEPが必要なのか理解するのは本当に難しいと思います!

Microsoftは、DEPについて次のように述べています。

DEPの主な利点は、データページからのコード実行を防ぐのに役立つことです。

通常、コードはデフォルトのヒープとスタックから実行されません。ハードウェアで強制されたDEPは、これらの場所から実行されているコードを検出し、実行時に例外を発生させます。

ソフトウェアで強制されるDEPは、悪意のあるコードがWindowsの例外処理メカニズムを利用するのを防ぐのに役立ちます。

それはどういう意味ですか?

このための簡単な非コード例を教えてください!

4

1 に答える 1

4

私が攻撃者であり、(単独で)アプリケーションにEIP(プログラムカウンター)を設定できる脆弱性を発見したとします。これを悪用する古典的な方法は、小さなコードスタブ(「シェルコード」)を記述し、それをパラメーターとしてアプリケーションに送信することです(たとえば、銀行のアプリの「名」フィールドに入力される場合があります)。アプリケーションはそれをスタック(またはヒープ)バッファーに格納し、次にEIPを(私が見つけた脆弱性を使用して)このバッファーの開始を指すように設定できます。出来上がり、私のコードスタブが実行され、あなたのボックスがpwnされます:)

DEPを使用すると、CPUはこのデータを実行する試みを拒否することを認識し、少し安全になります。

実際にはこれより少し複雑ですが、それが要点です。それは理にかなっていますか?

于 2012-06-27T22:54:38.600 に答える