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 を検索します。