Share via


/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. 在 [其他選項 ] 中 輸入選項。

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

另請參閱