{"id":200077,"date":"2018-01-25T01:56:00","date_gmt":"2018-01-25T00:56:00","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=200077"},"modified":"2018-11-29T14:26:08","modified_gmt":"2018-11-29T13:26:08","slug":"windows-skurril-programmverhalten-abhngig-vom-namen","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2018\/01\/25\/windows-skurril-programmverhalten-abhngig-vom-namen\/","title":{"rendered":"Windows: UAC-Programmverhalten abh&auml;ngig vom Namen"},"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\/2013\/03\/winb.jpg\" width=\"58\" height=\"58\" align=\"left\" \/>[English]Heute noch ein Blog-Beitrag aus der Mottenkiste 'Windows skurril'. Ist euch bekannt, dass der Name eines Programmes dessen Verhalten im Punkto Aufruf der Benutzerkontensteuerung beeinflussen kann? Ich wollte es kaum glauben \u2013 aber die Microsoft-Entwickler haben da in den Eingeweiden von Windows einige Balkone 'gestrickt' (neudeutsch als Heuristik bezeichnet), die manches zum Lotteriespiel macht. Ist zwar dokumentiert, aber imho wenig bekannt.<\/p>\n<p><!--more--><\/p>\n<h2>Eine Leseranfrage zu einem seltsamen Verhalten<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ssl-vg03.met.vgwort.de\/na\/9d6bc00375974d359a3bffca233ab9aa\" alt=\"\" width=\"1\" height=\"1\" \/>Vor einigen Tagen hat mich Blog-Leser Andreas T. per Mail kontaktiert, um mir von einem seltsamen Verhalten in Windows zu berichten. Er hatte eine Programmdatei umbenannt und pl\u00f6tzlich startete diese mit einer Abfrage der Benutzerkontensteuerung, um administrative Berechtigungen zu erlangen. Andreas schrieb mir:<\/p>\n<blockquote><p>ich habe aktuell eine Frage zum Thema \"Windows\", bei der ich aus dem Verhalten des Systems nicht schlau werde:<\/p>\n<p>Ich habe das Spiel Quake2 installiert, zu dem die ausf\u00fchrbare Datei \"quake2.exe\" geh\u00f6rt.<\/p>\n<p>Wenn ich die Datei im Explorer mit Rechtsklick kopiere als \"quake2 &#8211; Kopie.exe\", wird die Datei ganz normal dargestellt und ist auch ausf\u00fchrbar, ohne da\u00df die Benutzerkontensteuerung aktiviert wird.<\/p>\n<p><em><img decoding=\"async\" title=\"Programmdateien\" src=\"https:\/\/i.imgur.com\/UzQtrZc.jpg\" alt=\"Programmdateien\" \/><\/em><\/p><\/blockquote>\n<blockquote><p>Benenne ich die Datei in \"quake2patched.exe\" um, wird die Datei mit einem Schild (siehe Screenshot) im Explorer dargestellt und ich erhalte beim Start eine Anfrage der Benutzerkontensteuerung.<\/p><\/blockquote>\n<p>Der obige Screenshot untermauert das Ganze. Andreas hat dann gepr\u00fcft, ob sich beim Kopieren was ge\u00e4ndert hat, aber ohne Erfolg. Dazu schreibt er:<\/p>\n<blockquote><p>Die drei Dateien sind identisch.<\/p>\n<p>F:\\Quake II&gt;fc \/b quake2.exe quake2patched.exe<br \/>\nVergleichen der Dateien quake2.exe und QUAKE2PATCHED.EXE<br \/>\nFC: Keine Unterschiede gefunden<\/p>\n<p>Benenne ich die \"quake2patched.exe\" um in z.B. \"quake2test.exe\" verschwindet das Schild-Symbol.<\/p>\n<p>Haben Sie eine logische Erkl\u00e4rung? Es scheint am Dateinamen zu h\u00e4ngen &#8211; aber warum?<\/p><\/blockquote>\n<p>Ich hatte ad hoc keine logische Erkl\u00e4rung f\u00fcr diesen Effekt, konnte aber auch nicht reagieren, da ich unterwegs war. Ein Kurztest, den ich mit dem Windows-Editor Notepad durchf\u00fchrte, ergab aber ein merkw\u00fcrdiges Bild. Wenn ich <em>notepad.exe <\/em>mit administrativen Berechtigungen kopiere und dann in <em>notepadpatched.exe <\/em>umbenenne, startet der Editor nicht mehr.<\/p>\n<h2>Erkl\u00e4rung: Benutzerkontensteuerung in Vista<\/h2>\n<p>Das Ganze hat seine Urspr\u00fcnge wohl in Windows Vista, als Microsofts Programmierer die Benutzerkontensteuerung einf\u00fchrten. Programme, die administrative Berechtigungen erfordern, m\u00fcssen diese \u00fcber die Benutzerkontensteuerung anfordern. Eigentlich eine gute Sache.<\/p>\n<p>Geregelt wird die Anforderung \u00fcber ein Manifest, welches separat beiliegen kann, meist aber in der .exe-Datei enthalten ist. Dieses legt fest, ob das Programm administrative Berechtigungen braucht. Trifft dies zu, wird das Icon der Programmdatei mit dem stilisierte Schild versehen. Beim Aufruf erscheint dann auch die Benutzerkontensteuerungsabfrage.<\/p>\n<p>Der Benutzer kann zudem eine Verkn\u00fcpfung auf eine Programmdatei anlegen und dieser das Attribut <em>Als Administrator ausf\u00fchren <\/em>zuweisen. Und es gibt die M\u00f6glichkeit, den Kontextmen\u00fcbefehl\u00a0 <em>Als Administrator ausf\u00fchren<\/em> zum Programmstart zu verwenden. So weit so klar und alles in Ordnung.<\/p>\n<h2>Heuristik, oder Balkon-Programmierung in Windows<\/h2>\n<p>Aber es gab ja jede Menge Alt-Programme die von diesem Mechanismus nichts wussten. Also finden die Microsoft-Entwickler mit 'Balkonprogrammierung' an \u2013 sprich: Verwendung von trickreichen Ans\u00e4tzen, um zu erkennen, dass ein Programm administrative Berechtigungen braucht. Und dann kommt so ein Mist wie oben erw\u00e4hnt bei heraus.<\/p>\n<p>Wird beispielsweise der Registrierungseditor <em>Regedit.exe <\/em>unter einem Standard-Benutzerkonto aufgerufen, startet er mit normalen Berechtigungen. Unter einem Administratorkonto wird dagegen die Benutzerkontensteuerung aktiv und erm\u00f6glicht es, den Registrierungseditor mit administrativen Rechten auszuf\u00fchren. Der Start mit <em>Als Administrator ausf\u00fchren <\/em>ist nicht mehr erforderlich.<\/p>\n<p>Beim <em>explorer.exe <\/em>funktioniert das aber nicht, weil Windows intern die Ausf\u00fchrung mit administrativen Berechtigungen blockt \u2013 denn der Explorer ist ja auch f\u00fcr die Windows-Shell (Desktop etc.) zust\u00e4ndig. Ich hatte dies im Blog-Beitrag <a href=\"https:\/\/borncity.com\/blog\/2011\/04\/29\/explorer-als-administrator-ausfhren\/\">Explorer als Administrator ausf\u00fchren<\/a> mal thematisiert.<\/p>\n<h2>Installer Detection: Die schmutzigen Seiten des Ganzen<\/h2>\n<p>Geht man im Internet mit den richtigen Begriffen auf die Suche, st\u00f6\u00dft man vermutlich auf <a href=\"https:\/\/stackoverflow.com\/questions\/20096706\/how-does-windows-decide-whether-to-display-the-uac-prompt\" target=\"_blank\" rel=\"noopener\">diesen stackoverflow.com-Thread<\/a>. Dort erkl\u00e4rt jemand ein paar Winkelz\u00fcge, die bei 32-Bit-Programmdateien von Windows auftreten k\u00f6nnen. Microsoft hat dies 2006 f\u00fcr Windows Vista in <a href=\"https:\/\/docs.microsoft.com\/en-us\/previous-versions\/windows\/it-pro\/windows-vista\/cc709628(v=ws.10)\" target=\"_blank\" rel=\"noopener\">diesem l\u00e4nglichen Dokument<\/a> (Understanding and Configuring User Account Control in Windows Vista) beschrieben. Im Abschnitt <em>Installer Detection <\/em>legt man einige interne Tricks offen.<\/p>\n<blockquote><p>Before a 32 bit process is created, the following attributes are checked to determine whether it is an installer:<\/p>\n<ul>\n<li>Filename includes keywords like \"install,\" \"setup,\" \"update,\" etc.<\/li>\n<li>Keywords in the following Versioning Resource fields: Vendor, Company Name, Product Name, File Description, Original Filename, Internal Name, and Export Name.<\/li>\n<li>Keywords in the side-by-side manifest embedded in the executable.<\/li>\n<li>Keywords in specific StringTable entries linked in the executable.<\/li>\n<li>Key attributes in the RC data linked in the executable.<\/li>\n<li>Targeted sequences of bytes within the executable.<\/li>\n<\/ul>\n<\/blockquote>\n<p>Genau dort findet sich die Information, dass die Schl\u00fcsselw\u00f6rter <u><em>install<\/em><\/u>, <em>setup<\/em>, <em>update <\/em>etc. im Programmnamen dieses Verhalten hervorrufen. Besonders spannend finde ich das \"etc.\" in der Beschreibung, denn das l\u00e4sst Raum f\u00fcr viele M\u00f6glichkeiten.<\/p>\n<blockquote><p>Auch in der Registrierung l\u00e4sst sich die Ausf\u00fchrung einer Anwendung per Benutzerkontensteuerung konfigurieren (siehe <a href=\"https:\/\/4sysops.com\/archives\/vista%E2%80%99s-uac-8-ways-how-to-elevate-an-application-to-run-it-with-administrator-rights\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>).<\/p><\/blockquote>\n<p>Bevor ich antworten konnte, schickte mir Andreas bereits eine zweite Mail. Dort schrieb er: <em>kaum hat man die Frage abgeschickt, wird man beim MSDN doch noch f\u00fcndig<\/em>. <em>Es ist tats\u00e4chlich der Dateiname, ich habe gerade einen <a href=\"https:\/\/blog.thul.org\/technik\/betriebssysteme\/uac-aufforderung-in-abhaengigkeit-vom-dateinamen\/\" target=\"_blank\" rel=\"noopener\">entsprechenden Blog-Artikel<\/a> verfasst.<\/em> Er bezieht sich dabei auf den MSDN-Blog-Beitrag UAC: Five most common Install failure Scenarios and workarounds (Link gel\u00f6scht) von 2007, der das Ganze nochmals kompakter aufbereitet hat.<\/p>\n<h2>Meine abschlie\u00dfenden 2 Cents<\/h2>\n<p>Mit der Benutzerkontensteuerung bzw. der daran h\u00e4ngenden Implementierung hat Microsoft ein Monster geschaffen. Quasi ein Jahr nach dem ersten Artikel aus 2006 sah man sich schon gezwungen, einen erkl\u00e4renden Artikel nachzuschieben. Das Verhalten von Programmen ist also nicht mehr deterministisch, sondern wird von einer Heuristik mit beeinflusst.<\/p>\n<p>Solche Balkone sind oft der Grund, wenn irgend wann etwas mit Anwendungen gravierend in die Hose geht. M\u00f6glicherweise sind auch die F\u00e4lle, wo Anwender pl\u00f6tzlich damit konfrontiert sind, dass alle Programme nur noch mit Administratorrechten starten, auf solche Heuristiken (mit Registry-Eintr\u00e4gen) zur\u00fcckzuf\u00fchren.<\/p>\n<p>Abschlie\u00dfender Gedanke: Vermutlich braucht Schadsoftware das nicht, weil sie mit Manifesten in den .exe-Dateien arbeiten kann. Aber es w\u00e4ren Szenarien denkbar, wo die Malware die Programmdateien nach einer bestimmten Zeit einfach umbenennt und so den Aufruf der UAC per Heuristik erzwingt, um den Anwender auszutricksen. Eigentlich k\u00f6nnte die Benutzerkontensteuerung (UAC) eine gute Sache sein. Aber mit so etwas macht man das Ganze schlicht kaputt. Oder wie seht ihr das so? Und war euch das bekannt?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[English]Heute noch ein Blog-Beitrag aus der Mottenkiste 'Windows skurril'. Ist euch bekannt, dass der Name eines Programmes dessen Verhalten im Punkto Aufruf der Benutzerkontensteuerung beeinflussen kann? Ich wollte es kaum glauben \u2013 aber die Microsoft-Entwickler haben da in den Eingeweiden &hellip; <a href=\"https:\/\/borncity.com\/blog\/2018\/01\/25\/windows-skurril-programmverhalten-abhngig-vom-namen\/\">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":[301],"tags":[34,4325],"class_list":["post-200077","post","type-post","status-publish","format-standard","hentry","category-windows","tag-uac","tag-windows"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/200077","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=200077"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/200077\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=200077"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=200077"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=200077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}