/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 連結器選項
開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性]>[連結器]>[命令列] 屬性頁。
在 [其他選項] 中輸入選項。
若要以程式設計方式設定這個連結器選項
- 請參閱 AdditionalOptions。