{"id":197688,"date":"2017-11-29T01:16:00","date_gmt":"2017-11-29T00:16:00","guid":{"rendered":"http:\/\/www.borncity.com\/blog\/?p=197688"},"modified":"2023-04-04T07:35:27","modified_gmt":"2023-04-04T05:35:27","slug":"das-problem-mit-c-redists-party-sicherheitspatches-teil-3","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2017\/11\/29\/das-problem-mit-c-redists-party-sicherheitspatches-teil-3\/","title":{"rendered":"Das Problem mit C++ Redists &amp; 3rd Party Sicherheitspatches&ndash;Teil 3"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline;\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2015\/01\/Schutz.jpg\" width=\"40\" height=\"47\" align=\"left\" \/>[<a href=\"https:\/\/borncity.com\/win\/2017\/12\/21\/the-problem-with-c-redists-3rd-party-security-patches-iii\/\" target=\"_blank\" rel=\"noopener noreferrer\">English<\/a>]In Teil 1 und 2 der Artikelreihe hatte ich einen Hinweis von Blog-Leser Karl (al Qamar) auf ein Problem im Zusammenhang mit Sicherheitsupdates f\u00fcr die Visual C++ Laufzeitbibliotheken (Redistributables) aufgegriffen. In Teil 3 skizziere ich noch eine L\u00f6sung und ver\u00f6ffentliche einen Q &amp; A-Liste von Karl zum Thema.<\/p>\n<p><!--more--><\/p>\n<h2>Die L\u00f6sung All-In-One Runtime von Dritten<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ssl-vg03.met.vgwort.de\/na\/7a2f628eb5524fa2bfa644c94df39a37\" alt=\"\" width=\"1\" height=\"1\" \/>Um aus dem Problem heraus zu kommen, wird ein Tool ben\u00f6tigt, welches die alten Visual C++ Laufzeitbibliotheken deinstalliert. Karl gibt eine L\u00f6sung in folgendem Text an.<\/p>\n<blockquote><p>Es gibt eine L\u00f6sung f\u00fcr das Problem &#8211; die <a title=\"All in One Runtimes\" href=\"https:\/\/web.archive.org\/web\/20230315185158\/https:\/\/www.sereby.org\/site\/All%20in%20One%20Runtimes\" target=\"_blank\" rel=\"noopener noreferrer\">All in One Runtimes<\/a>\u00a02.4.x von Patrick Kuhnke.<\/p>\n<p>Ein Neustart ist empfohlen, da beim Neustart ggf. noch Redist-Dateien ersetzt werden die vorher im Zugriff waren.<\/p>\n<p>Dieses Tool, an dem ich zu einem sp\u00e4teren Zeitpunkt auch mitgewirkt habe, deinstalliert alle veralteten C++ Redists der Versionen 2005, 2008, 2010, 2012, 2013 und 2015 und installiert die aktuellen gegenw\u00e4rtig freigegebenen und sicheren Versionen.<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/chX2P5y.jpg\" \/><\/p>\n<p>Mit dem Tool lassen sich dann die alten Laufzeitumgebungen de- und die aktuellen Laufzeitumgebungen installieren. Eine Kurzbeschreibung findet sich auf der Webseite <a href=\"https:\/\/web.archive.org\/web\/20230124150202\/https:\/\/www.sereby.org\/site\/All%20in%20One%20Runtimes&amp;lang=de\" target=\"_blank\" rel=\"noopener noreferrer\">www.sereby.org<\/a> sowie <a href=\"https:\/\/www.computerbase.de\/downloads\/systemtools\/all-in-one-runtimes\/\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a> und <a href=\"http:\/\/winfuture.de\/downloadvorschalt,3340.html\" target=\"_blank\" rel=\"noopener noreferrer\">hier<\/a>.<\/p>\n<h2><b>Questions &amp; Answers (Q&amp;A)<\/b><\/h2>\n<p><b>Q: Warum sollte ich die C++ Redists \u00fcberhaupt aktualisieren, es l\u00e4uft doch alles?<\/b><\/p>\n<p>A: Weil fast alle unter Windows lauff\u00e4higen Programme darauf zugreifen und so anf\u00e4llig auf Buffer Overflows oder andere programmatische Attacken sind.<\/p>\n<p><b>Q: Manche Programme installieren von sich aus alte C++ Redists obwohl schon eine neuere Version existiert. Bin ich dann gesch\u00fctzt?<\/b><\/p>\n<p>A: Nein, MS hat es bis C++ 2013 vers\u00e4umt, einen wirksamen Schutz gegen das \u00fcberschreiben bzw. Side-by-Side Installationen vorzunehmen. Leider nutzen auch einige Programm nicht die in Windows bereitgestellten Redists sondern halten diese in Ihrem eigenen Programmverzeichnis vor. Ich w\u00fcrde aber nicht so weit gehen diese auch noch zu ersetzen. Es ist jedoch nicht zu erwarten, dass diese Komponenten durch den Softwarehersteller gepatcht werden (\u00e4hnlich wie bei OpenSSL).<\/p>\n<p><b>Q: Warum gibt es \u00fcberhaupt diese Side-By-Side Installation?<\/b><\/p>\n<p>A: Die Idee dahinter, die aber laut einigen Quellen dann nicht effektiv genutzt wurde, war den Entwicklern die M\u00f6glichkeit zu geben neue Releases der C++ Redists einfacher auf eventuelle Probleme zu testen.<\/p>\n<p><b>Q: Gibt es Probleme wenn man die alten Versionen aktualisiert?<\/b><\/p>\n<p>A: Mir sind bislang keine bekannt die auf das Update selbst zur\u00fcckzuf\u00fchren sind.<br \/>\nSelbst antiquierte medizinische Programme, wo sich Programmierer wenig Gedanken \u00fcber solche Dinge machen, waren in produktiven Umgebungen weiterhin funktional. Auch Spezialsoftware wie von Datev oder Adobe verursachten keine St\u00f6rungen. Extrem selten kann es zu Problemen kommen wenn der Side-by-Side Store (WinSxS) defekt ist. Dann half aber die manuelle Deinstallation und Re-Installation der betroffenen C++ Redists.<\/p>\n<p><b>Q: Gibt es f\u00fcr jedes C++ Release eigene Redists?<\/b><\/p>\n<p>A: Grunds\u00e4tzlich ja. Die C++ 2015 Redists wurden nun durch C++ 2017 ersetzt. Dies ist aber ein Novum.<\/p>\n<p><b>Q: Warum ben\u00f6tigt man dann vermeintlich alte C++ 2005 Redists, wenn es doch schon C++ 2017 Redists gibt? <\/b><\/p>\n<p>A: Das ist wie bei .NET. Man ben\u00f6tigt .NET 2.0-3.5 f\u00fcr alte Applikationen die mit diesem Framework kompiliert wurden.<\/p>\n<p>W\u00e4hrend man .NET 4.0-4.7 zusammen nutzen kann.\u00a0 Bei den C++ Redists ist es genau so, je nachdem mit welchem C++ Visual Studio die Applikation kompiliert wurde, ben\u00f6tigt man die entsprechenden Runtimes.<\/p>\n<p><b>Q: ich sehe in Programme und Features immer mindestens 2 Eintr\u00e4ge, x86 und x64. Ist das so richtig?<\/b><\/p>\n<p>A: Ja, auch wenn man ein x64 bit OS nutzt, kann ein fragliches Programm ja noch in 32bit (x86) kompiliert worden sein.<\/p>\n<p><b>Q: Was mache ich, wenn es mehrere Redists mit verschiedenen Versionsst\u00e4nden gibt? <\/b><\/p>\n<p>A: Die alten Versionen deinstallieren, oder das Tool laufen lassen. Sollte das Tool alte Versionseintr\u00e4ge \u00fcbrig lassen (kann selten vorkommen), sollten diese manuell deinstalliert werden.<\/p>\n<p><b>Q: Auf Servern gibt es nicht nur die Redists sondern teilweise auch andere C++ Runtimes. Ist dies das gleiche?<\/b><\/p>\n<p>A: Nein, diese Runtimes enthalten noch einen erweiterten Funktionsumfang und sind deutlich gr\u00f6\u00dfer. Oft bei SQL Server oder Exchange. Das Versionierungsprinzip ist aber das gleiche.<\/p>\n<p><b>Q: Warum bekommt MS das \u201eChaos\" nicht selbst in den Griff?<\/b><\/p>\n<p>A: Gute Frage! Obwohl es einen Versionscheck seit 2013 gibt, kommt es manchmal immer noch vor, dass sich C++ 2013 \/ 2015 installieren, obgleich schon eine neuere Version installiert ist.<\/p>\n<p><b>Q: Bei der Deinstallation tritt folgende Meldung auf: Fehlercode 0x01<\/b><\/p>\n<p>A: Dies ist nicht schlimm, wenn das Programm z.B. keine Version findet, wird er Errorlevel der Batchdatei falsch interpretiert.<\/p>\n<p><b>Q: Wie sieht eine \u201ekorrekte\" Installation gegenw\u00e4rtig aus?<\/b><\/p>\n<p>A: Hier ist die betreffende Liste der Module.<\/p>\n<p><a href=\"https:\/\/i.imgur.com\/Dra63nh.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"\" title=\"Visual C++ Redistributables\" src=\"https:\/\/i.imgur.com\/Dra63nh.jpg\" alt=\"Visual C++ Redistributables\" width=\"629\" height=\"168\" \/><\/a><br \/>\n(Zum Vergr\u00f6\u00dfern klicken)<\/p>\n<p><strong>Artikelreihe:<\/strong><br \/>\n<a href=\"https:\/\/borncity.com\/blog\/?p=197680\">Das Problem mit C++ Redists &amp; 3rd Party Sicherheitspatches<\/a><a href=\"https:\/\/borncity.com\/blog\/?p=197680\">\u00a0\u2013 Teil 1<br \/>\n<\/a><a href=\"https:\/\/borncity.com\/blog\/?p=197682\" rel=\"noopener\">Das Problem mit C++ Redists &amp; 3rd Party Sicherheitspatches<\/a><a href=\"https:\/\/borncity.com\/blog\/?p=197680\">\u00a0\u2013 Teil 2<br \/>\n<\/a><a href=\"https:\/\/borncity.com\/blog\/?p=197688\" rel=\"noopener\">Das Problem mit C++ Redists &amp; 3rd Party Sicherheitspatches<\/a><a href=\"https:\/\/borncity.com\/blog\/?p=197680\">\u00a0\u2013 Teil 3<\/a><\/p>\n<p><strong>\u00c4hnliche Artikel:<\/strong><br \/>\n<a href=\"https:\/\/borncity.com\/blog\/2016\/12\/15\/windows-10-fehler-side-by-side-konfiguration-ungltig\/\">Windows 7\/8.1\/10: Fehler Side-by-Side-Konfiguration ung\u00fcltig<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[English]In Teil 1 und 2 der Artikelreihe hatte ich einen Hinweis von Blog-Leser Karl (al Qamar) auf ein Problem im Zusammenhang mit Sicherheitsupdates f\u00fcr die Visual C++ Laufzeitbibliotheken (Redistributables) aufgegriffen. In Teil 3 skizziere ich noch eine L\u00f6sung und ver\u00f6ffentliche &hellip; <a href=\"https:\/\/borncity.com\/blog\/2017\/11\/29\/das-problem-mit-c-redists-party-sicherheitspatches-teil-3\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[426,185,301],"tags":[4328,4315,6668,3288],"class_list":["post-197688","post","type-post","status-publish","format-standard","hentry","category-sicherheit","category-update","category-windows","tag-sicherheit","tag-update","tag-vc","tag-windows-en"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/197688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=197688"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/197688\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=197688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=197688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=197688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}