7

NXフラグとは何か、どのように機能するかを説明してください(技術的にしてください)。

4

3 に答える 3

5

これは、仮想メモリ システムおよび TLB (仮想メモリ マッピングを解決するために CPU によって使用される構造体) で実行不可能なメモリ ページをマークします。そのようなページから何らかのプログラム コードが実行される場合、CPU はフォールトし、エラー処理のためにオペレーティング システムに制御を移します。

通常、プログラムはバイナリ コードと静的データを読み取り専用のメモリ セクションに格納します。プログラムがそこに書き込もうとすると、CPU に障害が発生し、オペレーティング システムが通常アプリケーションを強制終了します (これは、セグメンテーション フォールトまたはアクセス違反として知られています)。 .

セキュリティ上の理由から、プログラムの読み取り/書き込みデータ メモリは通常、デフォルトで NX 保護されています。これにより、攻撃者が悪意のあるコードをデータとしてアプリケーションに提供し、アプリケーションにそれをデータ領域に書き込ませ、そのコードを何らかの方法で実行させることを防ぎます。通常、アプリケーションのバッファ オーバーフロー/アンダーフローの脆弱性によって、関数の戻りアドレスを上書きします。データ領域内の悪意のあるコードの場所とスタックします。

一部の正当なアプリケーション (特に高性能エミュレーターと JIT コンパイラー) も、実行時にコードをコンパイルするときにデータを実行する必要がありますが、そのために NX フラグが設定されていないメモリを明確に割り当てます。

于 2010-01-30T16:38:11.810 に答える
2

ウィキペディアより

No eXecute の略である NX ビットは、プロセッサの命令 (またはコード) のストレージまたはデータのストレージのいずれかで使用するメモリ領域を分離するために CPU で使用されるテクノロジであり、通常はハーバード アーキテクチャ プロセッサにのみ見られる機能です。ただし、NX ビットは、セキュリティ上の理由から、従来のフォン ノイマン アーキテクチャ プロセッサでますます使用されています。

NX ビットをサポートするオペレーティング システムは、メモリの特定の領域を非実行可能としてマークする場合があります。プロセッサは、これらのメモリ領域にあるコードの実行を拒否します。実行可能領域保護と呼ばれる一般的な手法は、特定の種類の悪意のあるソフトウェアが別のプログラムのデータ ストレージ領域にコードを挿入し、このセクション内から独自のコードを実行することによってコンピューターを乗っ取るのを防ぐために使用されます。これは、バッファ オーバーフロー攻撃として知られています。

于 2010-01-30T16:36:47.200 に答える
0

NX ビットを使用するウィキペディアにあるこの「DEP 」を見てください。技術的な回答の提供に関しては、申し訳ありませんが、これについては十分に知りませんが、引用します。

データ実行防止 (DEP) は、最新の Microsoft Windows オペレーティング システムに含まれるセキュリティ機能であり、アプリケーションまたはサービスが実行不可能なメモリ領域からコードを実行するのを防ぐことを目的としています。....

DEP は Windows XP Service Pack 2 で導入され、Windows XP Tablet PC Edition 2005、Windows Server 2003 Service Pack 1 以降、Windows Vista、Windows Server 2008、および Windows のすべての新しいバージョンに含まれています。...

ハードウェア強制 DEP は、32 ビット Windows での PAE カーネルの自動使用と 64 ビット カーネルでのネイティブ サポートを通じて、互換性のある CPU で NX ビットを有効にします。Windows Vista DEP は、メモリの特定の部分をデータのみを保持するようにマークすることで機能し、NX または XD ビット対応のプロセッサはそのデータを実行不可として認識します。これにより、バッファ オーバーフロー攻撃の成功を防ぐことができます。Windows Vista では、プロセスの DEP ステータス、つまり、特定のプロセスに対して DEP が有効か無効かを、Windows タスク マネージャーの [プロセス] タブで確認できます。

DEP に関する MSDN のナレッジ ベースのこちらも参照してください。これがどのように機能するかについては、ここに非常に詳細な説明があります。

これがお役に立てば幸いです。よろしくお願いします、トム。

于 2010-01-30T16:48:55.070 に答える