共用方式為


/DEPENDENTLOADFLAG (設定預設相依負載旗標)

/DEPENDENTLOADFLAG 選項需要 Visual Studio 2017 或更新版本。

設定作業系統解析模組靜態連結匯入時所使用的預設載入旗標。

語法

/DEPENDENTLOADFLAG[load_flags]

引數

load_flags
選擇性的整數值,指定解析模組靜態連結匯入相依性時所要套用的載入旗標。 預設值為 0。 如需支持的旗標值清單,請參閱 LOAD_LIBRARY_SEARCH_* LoadLibraryEx 中的專案。

備註

當操作系統解析模組的靜態連結匯入時,它會使用 預設的搜尋順序使用 /DEPENDENTLOADFLAG 選項來指定load_flags值,以變更用來解析這些匯入的搜尋路徑。 在支援的操作系統上,它會變更靜態匯入解析搜尋順序,類似於 LoadLibraryEx 在使用 LOAD_LIBRARY_SEARCH 參數時執行的動作。 如需load_flags設定的搜尋順序資訊,請參閱使用LOAD_LIBRARY_SEARCH旗標搜尋訂單。

此旗標可用來讓一個 DLL 種植攻擊 向量更加困難。 例如,請考慮以靜態方式連結 DLL 的應用程式:

  • 攻擊者可以在匯入解析搜尋路徑中,使用相同名稱來植入 DLL,例如應用程式目錄。 受保護的目錄比較困難,但並非不可能,攻擊者無法變更。

  • 如果應用程式遺漏 DLL,%windows%\system32 和 %windows% 目錄,則匯入解析會流向目前的目錄。 攻擊者可以在該處植入 DLL。

在這兩種情況下,如果您指定連結選項 /DEPENDENTLOADFLAG:0x800 (旗標的 LOAD_LIBRARY_SEARCH_SYSTEM32值),則模組搜尋路徑會限製為 %windows%\system32 目錄。 它提供一些保護,防止對其他目錄的種植攻擊。 如需詳細資訊,請參閱 動態連結庫安全性

若要查看任何 DLL 中 /DEPENDENTLOADFLAG 選項所設定的值,請使用 DUMPBIN 命令搭配 /LOADCONFIG 選項。

Visual Studio 2017 中的 /DEPENDENTLOADFLAG 選項是新的。 僅適用於在 Windows 10 RS1 和更新版本的 Windows 版本上執行的應用程式。 執行應用程式的其他作業系統會忽略此選項。

在 Visual Studio 開發環境中設定 DEPENDENTLOADFLAG 連結器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性]>[連結器]>[命令列] 屬性頁。

  3. 在 [其他選項] 中輸入選項。

若要以程式設計方式設定這個連結器選項

另請參閱