次の方法で共有


AppInit DLL とセキュア ブート

Windows 8 以降では、セキュア ブートが有効になっている場合、AppInit_DLLs インフラストラクチャは無効になります。

AppInit_DLLsについて

AppInit_DLLs インフラストラクチャでは、カスタム DLL をすべての対話型アプリケーションのアドレス空間に読み込むことで、システム API をフックする簡単な方法が提供されます。 アプリケーションと悪意のあるソフトウェアはどちらも、API をフックするのと同じ基本的な理由で AppInit DLL を使用します。カスタム DLL が読み込まれた後、既知のシステム API をフックし、代替機能を実装できます。 このメカニズムを使用して DLL を読み込むのは、最新の正当なアプリケーションのごく一部のみです。一方、大規模な一連のマルウェアはこのメカニズムを使用してシステムを侵害します。 正当なAppInit_DLLsであっても、意図せずにシステムのデッドロックやパフォーマンスの問題が発生する可能性があるため、AppInit_DLLsの使用はお勧めしません。

AppInit_DLLsとセキュア ブート

Windows 8 では、システム全体の整合性を向上させ、高度な脅威に対する強力な保護を提供するために、UEFI とセキュア ブートを採用しました。 セキュア ブートを有効にすると、マルウェアや脅威から顧客を保護するための侵害のないアプローチの一環として、AppInit_DLLs メカニズムが無効になります。

セキュア ブートは UEFI プロトコルであり、Windows 8 機能ではないことに注意してください。 UEFI とセキュア ブート プロトコルの仕様の詳細については、https://www.uefi.orgを参照してください。

Windows 8 デスクトップ アプリのAppInit_DLLs認定要件

Windows 8 デスクトップ アプリの認定要件の 1 つは、AppInit_DLLs メカニズムを使用して Win32 API 呼び出しをインターセプトするために、アプリが任意の DLL を読み込まないようにすることです。 認定要件の詳細については、Windows 8 デスクトップ アプリ 認定要件のセクション 1.1 を参照してください。

概要

  • AppInit_DLLs メカニズムは、システムのデッドロックやパフォーマンスの問題につながる可能性があるため、正当なアプリケーションには推奨されません。
  • セキュア ブートが有効になっている場合、AppInit_DLLs メカニズムは既定で無効になります。
  • Windows 8 デスクトップ アプリでAppInit_DLLsを使用することは、Windows デスクトップ アプリの認定エラーです。

Windows 7 および Windows Server 2008 R2 のAppInit_DLLsに関する情報を含むホワイトペーパーをダウンロードするには、Windows ハードウェア デベロッパー センター アーカイブにアクセスし、Windows 7 および Windows Server 2008 R2 AppInit DLL を検索します。