/DEPENDENTLOADFLAG (Ustaw domyślne zależne flagi ładowania)
Opcja /DEPENDENTLOADFLAG wymaga programu Visual Studio 2017 lub nowszego.
Ustawia domyślne flagi ładowania używane, gdy system operacyjny rozwiązuje statycznie połączone importy modułu.
Składnia
/DEPENDENTLOADFLAG[:load_flags]
Argumenty
load_flags
Opcjonalna wartość całkowita określająca flagi ładowania, które mają być stosowane podczas rozpoznawania statycznie połączonych zależności importu modułu. Wartość domyślna to 0. Aby uzyskać listę obsługiwanych wartości flag, zobacz wpisy w elem LOAD_LIBRARY_SEARCH_*
. LoadLibraryEx.
Uwagi
Gdy system operacyjny rozpoznaje statycznie połączone importy modułu, używa domyślnej kolejności wyszukiwania. Użyj opcji /DEPENDENTLOADFLAG, aby określić load_flags wartość, która zmienia ścieżkę wyszukiwania używaną do rozpoznawania tych importów. W obsługiwanych systemach operacyjnych zmienia statyczną kolejność wyszukiwania rozpoznawania importów, podobnie jak w przypadku używania LOAD_LIBRARY_SEARCH
parametrów loadLibraryEx. Aby uzyskać informacje na temat kolejności wyszukiwania ustawionej przez load_flags, zobacz Wyszukiwanie kolejności przy użyciu flag LOAD_LIBRARY_SEARCH.
Tej flagi można użyć, aby jeden wektor ataku sadzenia bibliotek DLL był trudniejszy. Rozważmy na przykład aplikację, która statycznie połączyła bibliotekę DLL:
Osoba atakująca może założyć bibliotekę DLL o takiej samej nazwie we wcześniejszej ścieżce wyszukiwania rozpoznawania importu, takiej jak katalog aplikacji. Katalogi chronione są trudniejsze — ale nie niemożliwe — aby osoba atakująca uległa zmianie.
Jeśli w aplikacji brakuje biblioteki DLL, katalogów %windows%\system32 i %windows%, funkcja rozpoznawania importu przechodzi do bieżącego katalogu. Osoba atakująca może tam położyć bibliotekę DLL.
W obu przypadkach, jeśli określisz opcję /DEPENDENTLOADFLAG:0x800
łącza (wartość flagi LOAD_LIBRARY_SEARCH_SYSTEM32
), ścieżka wyszukiwania modułu jest ograniczona do katalogu %windows%\system32. Oferuje pewną ochronę przed atakami na inne katalogi. Aby uzyskać więcej informacji, zobacz Zabezpieczenia biblioteki dynamicznej.
Aby wyświetlić wartość ustawioną przez opcję /DEPENDENTLOADFLAG w dowolnej dll, użyj polecenia DUMPBIN z opcją /LOADCONFIG .
Opcja /DEPENDENTLOADFLAG jest nowa w programie Visual Studio 2017. Dotyczy tylko aplikacji działających w systemie Windows 10 RS1 i nowszych wersjach systemu Windows. Ta opcja jest ignorowana przez inne systemy operacyjne, które uruchamiają aplikację.
Aby ustawić opcję konsolidatora DEPENDENTLOADFLAG w środowisku projektowym programu Visual Studio
Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).
Wybierz stronę właściwości wiersza polecenia konsolidatora>konfiguracji.>
Wprowadź opcję w obszarze Dodatkowe opcje.
Aby programowo ustawić tę opcję konsolidatora
- Zobacz: AdditionalOptions.