Share via


/ DEPENDENTLOADFLAG (Impostazione dei flag di caricamento dipendente predefiniti)

L'opzione /DEPENDENTLOADFLAG richiede Visual Studio 2017 o versione successiva.

Imposta i flag di caricamento predefiniti utilizzati quando il sistema operativo risolve le importazioni collegate in modo statico di un modulo.

Sintassi

/DEPENDENTLOADFLAG[:load_flags]

Argomenti

load_flags
Valore intero facoltativo che specifica i flag di caricamento da applicare durante la risoluzione delle dipendenze di importazione collegate staticamente del modulo. Il valore predefinito è 0. Per un elenco dei valori dei flag supportati, vedere le LOAD_LIBRARY_SEARCH_* voci in LoadLibraryEx.

Osservazioni:

Quando il sistema operativo risolve le importazioni collegate staticamente di un modulo, usa l'ordine di ricerca predefinito. Usare l'opzione /DEPENDENTLOADFLAG per specificare un valore load_flags che modifica il percorso di ricerca usato per risolvere queste importazioni. Nei sistemi operativi supportati modifica l'ordine di ricerca per la risoluzione dell'importazione statica, in modo analogo a quello usato da LoadLibraryEx quando si usano LOAD_LIBRARY_SEARCH parametri. Per informazioni sull'ordine di ricerca impostato da load_flags, vedere Ordine di ricerca tramite flag LOAD_LIBRARY_edizione Standard ARCH.

Questo flag può essere usato per rendere più difficile un vettore di attacco di impianto dll. Si consideri, ad esempio, un'app che ha collegato in modo statico una DLL:

  • Un utente malintenzionato potrebbe impostare una DLL con lo stesso nome precedente nel percorso di ricerca di risoluzione di importazione, ad esempio la directory dell'applicazione. Le directory protette sono più difficili, ma non impossibili, perché un utente malintenzionato cambi.

  • Se la DLL non è presente nell'applicazione, %windows%\system32 e %windows% directory, la risoluzione dell'importazione passa alla directory corrente. Un utente malintenzionato potrebbe piantare una DLL.

In entrambi i casi, se si specifica l'opzione /DEPENDENTLOADFLAG:0x800 di collegamento (il valore del flag LOAD_LIBRARY_SEARCH_SYSTEM32), il percorso di ricerca del modulo è limitato alla directory %windows%\system32. Offre una certa protezione dagli attacchi di impianto sulle altre directory. Per altre informazioni, vedere Sicurezza della libreria a collegamento dinamico.

Per visualizzare il valore impostato dall'opzione /DEPENDENTLOADFLAG in qualsiasi DLL, usare il comando DUMPBIN con l'opzione /LOADCONFIG.

L'opzione /DEPENDENTLOADFLAG è una novità di Visual Studio 2017. Si applica solo alle app in esecuzione in Windows 10 RS1 e versioni successive di Windows. Questa opzione viene ignorata da altri sistemi operativi che eseguono l'app.

Per impostare l'opzione del linker DEPENDENTLOADFLAG nell'ambiente di sviluppo di Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle >proprietà Proprietà del linker della riga di comando del linker>di configurazione.

  3. Immettere l'opzione in Opzioni aggiuntive.

Per impostare l'opzione del linker a livello di codice

Vedi anche