Visual Studio 2015 Update 3 Spectre Variant 1 Toolset (/Qspectre)

Van toepassing op
Visual Studio 2015 Update 3

Overzicht

Spectre is een nieuwe klasse van hardwarekwetsbaarheden die betrekking hebben op speculatieve kanalen aan de uitvoeringszijde die kunnen worden gebruikt om informatie vrij te geven over het programma dat wordt aangevallen. Zie dit Visual C++ Team Blog-artikel en dit beveiligingsadvies 180002 voor meer informatie.

Als je een ontwikkelaar bent wiens code werkt op gegevens die een vertrouwensgrens overschrijden, zou je kunnen overwegen deze updates te installeren en je code opnieuw samen te stellen door de schakeloptie /Qspectre ingeschakeld te hebben en vervolgens een koppeling te maken naar de bibliotheken met beperkingen op de Spectre die beschikbaar zijn. /Qspectre en de bibliotheken bieden hulp bij het oplossen van risicobeperking voor Spectre Variant 1 - CVE-2017-5753.

Hoe u deze update kunt downloaden

Update van de toolset

Voor alle architecturen VC14-KB4338871.exe

VC++-bibliotheken met restrictiebeperking

Voor alle ondersteunde, op x86 gebaseerde systemen VS2015U3_vcpp_spectre_libs_x86.exe
Voor alle ondersteunde, op x64 gebaseerde systemen VS2015U3_vcpp_spectre_libs_x64.exe
Voor alle ondersteunde ARM-systemen VS2015U3_vcpp_spectre_libs_arm.exe

Vereisten

Als u deze update wilt toepassen, moet u Update 3 voor Visual Studio 2015 hebben geïnstalleerd.

Informatie over opnieuw opstarten

Nadat u deze update hebt toegepast, moet u de computer wellicht opnieuw opstarten.

Informatie over vervanging

Deze update is geen vervanging van eerder uitgebrachte updates.

Meer informatie over deze update

Wanneer je de update van de toolset installeert, kun je /Qspectre handmatig inschakelen via de C/C++ opdrachtregelopties.

Opties op de opdrachtregel

U moet ook de VC++-bibliotheken met beperkingen met Spectre installeren (één update per architectuur) en er vervolgens handmatig een koppeling naar maken.

Handmatig koppelen

De paden zijn als volgt:

x86: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre

x64: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre\amd64

ARM: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\spectre\arm

We bieden alleen ondersteuning voor statische koppeling en lokale toepassingsimplementatie . De inhoud van de Visual C++ 2015 Runtime Libraries Redistributable is niet gewijzigd. Lokale toepassingsimplementatie houdt in dat u een koppeling maakt met de nieuwe Spectre-bibliotheken met behulp van de optie Multithreaded DLL (/MD of /MDd) en vervolgens, wanneer u uw nieuwe programma implementeert, de beperkte runtimes opneemt in dezelfde map als het .exe bestand waarin ze worden geladen. De centraal geïmplementeerde versie van de runtime (die in C:\Windows\System32 of C:\Windows\SysWOW64) is de niet-gemitgeerde versie. Als het uitvoerbare bestand zich niet in dezelfde map bevindt, wordt de centraal geïmplementeerde versie van de runtime opgehaald.

Voor het gebruiksgemak bieden we ook kopieën van de meeste bibliotheken in de Spectre-bibliotheekmappen. Ze zijn echter niet allemaal Spectre-mitigated. In de volgende tabel ziet u welke bibliotheken worden beperkt. Houd er ook rekening mee dat de bestanden met Spectre-beperkingen consistent moeten zijn in alle architecturen, als de technologie voor die architectuur wordt ondersteund.

Visual C++ runtime statisch en importbibliotheken

  • binmode.obj
  • chkstk.obj
  • commode.obj
  • comsupp.lib
  • comsuppw.lib
  • concrt.lib
  • delayimp.lib
  • invalidcontinue.obj
  • iso_stdio_wide_specifiers.lib
  • legacy_stdio_definitions.lib
  • legacy_stdio_wide_specifiers.lib
  • libcmt.lib
  • libconcrt.lib
  • libconcrt1.lib
  • libcpmt.lib
  • libcpmt1.lib
  • libvcruntime.lib
  • loosefpmath.obj
  • msvcmrt.lib
  • msvcprt.lib
  • msvcrt.lib
  • newmode.obj
  • noarg.obj
  • noenv.obj
  • notelemetry.obj
  • nothrownew.obj
  • oudenamen.lib
  • ptrustm.lib
  • setargv.obj
  • threadlocale.obj
  • vcamp.lib
  • vccorlib.lib
  • vcomp.lib
  • vcruntime.lib
  • wsetargv.obj
  • onecore\iso_stdio_wide_specifiers.lib
  • onecore\legacy_stdio_definitions.lib
  • onecore\legacy_stdio_wide_specifiers.lib
  • onecore\libcmt.lib
  • onecore\libcpmt.lib
  • onecore\libcpmt1.lib
  • onecore\libvcruntime.lib
  • onecore\msvcprt.lib
  • onecore\msvcrt.lib
  • onecore\oudenamen.lib
  • onecore\vccorlib.lib
  • onecore\vcomp.lib
  • onecore\vcruntime.lib

Visual C++ runtime-DLL's

  • concrt140.dll
  • mfc140chs.dll
  • mfc140cht.dll
  • mfc140deu.dll
  • mfc140enu.dll
  • mfc140esn.dll
  • mfc140fra.dll
  • mfc140ita.dll
  • mfc140jpn.dll
  • mfc140kor.dll
  • mfc140rus.dll
  • mfc140u.dll
  • mfcm140u.dll
  • Microsoft.VisualC.STLCLR.dll
  • msvcp140.dll
  • vcamp140.dll
  • vccorlib140.dll
  • vcruntime140.dll
  • onecore\concrt140.dll
  • onecore\msvcp140.dll
  • onecore\vccorlib140.dll
  • onecore\vcruntime140.dll