agowa338
Goto Top

Programm ohne UAC und Administratorrechte starten

Hallo,

ich denke, jeder kennt das Problem, ein Programm das die UAC aufpoppen lässt ohne dass es wirklich Administrator Rechte braucht.
Entweder ihr habt die Verzeichnis Berechtigungen entsprechend "korrigiert" damit auch eine Nicht Admin Gruppe die Aktion ausführen kann, oder es war von vorne herein überflüssig.
Letzeres hatte ich neulich mit einem kleinen Programm zur Wiedergabe von Überwachungskamera aufnahmen. Auf meinem Client installiert und jedesmal kommt die UAC, obwohl die Rechte nicht benötigt werden (funktioniert auch ohne). Deshalb habe ich nach einer Lösung für das Problem gesucht und die möchte ich euch nicht vorenthalten.

back-to-topMittels start.bat und AsInvoker Shim

@echo off
set __COMPAT_LAYER=RUNASINVOKER
start C:\Path\To\Exe.exe
Verknüpfung auf den Desktop und in den Einstellungen auswählen, dass sie minimiert startet face-wink

back-to-topMittels installiertem Shim

war mir etwas zu aufwendig, nur um die Batch Datei weg zu bekommen. Dabei wird auch nur die Umgebungsvariable von oben beim Programmaufruf gesetzt...

back-to-topMittels Hex Editor den Manifest Eintrag ändern

exe im Hexeditor (z. B. HxD) öffnen und nach dem String "requestedExecutionLevel level=" suchen und anschließend den Wert auf "asInvoker" ändern. eventuell übrige Zeichen des alten Wertes einfach mit Leerzeichen überschreiben. Zerstört leider die Digitale Signatur, was Windows aber überhaupt nicht interessiert. In den Einstellungen wird die Signatur immer noch angezeigt, lediglich wenn man diese anklickt steht ganz klein "Ungültig" dorten...

back-to-topMittels gespeicherter Anmeldeinformationen und mit Administrator Rechten

Das ist sicherheitstechnisch sehr fragwürdig, weil anschließend jedes Programm über diesen befehl als Administrator gestartet werden kann. Ich führe das hier nur der Vollständigkeit halber mit auf!
  1. Lokales Administrator Konto aktivieren (ja, geht nur mit diesem und keinem anderen)
  2. Verknüpfung zum Starten auf den Befehl setzen:
    runas /user:%computername%\Administrator /savecred /env /noprofile "C:\Path\To\Exe.exe"  
  3. Verknüpfung anklicken und das Passwort eintippen, damit es gespeichert wird.
P. S. Jetzt kann ohne weitere Passworteingabe jedes Programm als Administrator gestartet werden (durch eintippen von z. B. "runas /user:%computername%\Administrator /savecred /env /noprofile cmd.exe")

back-to-topUAC deaktivieren

Einfach den Regler ganz nach unten Ziehen (Win7) hat den gleichen Effekt, nur leider wird dadurch auch der "low Privileges Mode" des Internet Explorers deaktiviert, so dass dieser zur Laufzeit mehr rechte als vorher (die des Benutzers) hat. Außerdem bekommen auch Administratoren an dem System keine UAC mehr angezeigt, was je nach Umgebung eventuell nicht gewollt ist.

P. S. Desto weniger Programme als Administrator gestartet werden desto besser. So muss man wenigstens nicht jedem Administrator rechte erteilen damit er Arbeiten kann.

Content-ID: 315023

Url: https://administrator.de/contentid/315023

Ausgedruckt am: 24.11.2024 um 04:11 Uhr

runasservice
runasservice 13.09.2016 um 11:38:51 Uhr
Goto Top
Zerstört leider die Digitale Signatur, was Windows aber überhaupt nicht interessiert.

Die meisten Entwickler prüfen das Code Signing Zertifikat, mehr oder weniger zufällig zur Laufzeit der Anwendung. Ist das Zertifikat beschädigt, wird häufig ein Counter gestartet, der in einer beliebigen Kombination aus Datum oder Programmstarts verschiedene Aktionen auslöst, z.B. Lizenz deaktivieren, Programm anhalten oder einfach unsinnige Fehlermeldungen produziert.

Mit diesen zeitversetzten Aktionen wird verhindert, dass ein „KiKo“ Rückschlüsse auf den Programmschutz ziehen kann. Es kann deshalb gut sein das ein "verändertes" Programm 1-2 Wochen läuft...

Auf jeden Fall verliert man seine Lizenz und jeglichen Anspruch auf Support!

Viel Erfolg...
agowa338
agowa338 13.09.2016 um 18:42:07 Uhr
Goto Top
Zitat von @runasservice:
Die meisten Entwickler prüfen das Code Signing Zertifikat, mehr oder weniger zufällig zur Laufzeit der Anwendung. Ist das Zertifikat beschädigt, wird häufig ein Counter gestartet, der in einer beliebigen Kombination aus Datum oder Programmstarts verschiedene Aktionen auslöst, z.B. Lizenz deaktivieren, Programm anhalten oder einfach unsinnige Fehlermeldungen produziert.
Dieser Teil war jetzt eigentlich auf kleinere Programme bezogen, die größeren wissen in der Regel, welche Rechte ihre Programme brauche, aber danke für den Hinweis face-wink
Ich hatte mir eigentlich so etwas wie die Warnung der Webbrowser vor fehlerhaften Zertifikaten durch Windows vor dem eigentlichen Start vorgestellt...
Mit diesen zeitversetzten Aktionen wird verhindert, dass ein „KiKo“ Rückschlüsse auf den Programmschutz ziehen kann. Es kann deshalb gut sein das ein "verändertes" Programm 1-2 Wochen läuft...
KiKo = Cracker ???
Auf jeden Fall verliert man seine Lizenz und jeglichen Anspruch auf Support!
Das ist hoffentlich jedem klar, aber sollte es Probleme geben, kann man vorher ja einfach das Programm wieder durch die original Version Tauschen...

Und genau für diese Fälle gibt es die anderen Möglichkeiten.
runasservice
runasservice 13.09.2016 aktualisiert um 20:06:57 Uhr
Goto Top
Hallo,

wollte nur Aufzeigen, das es keine gute Idee ist, (mittels HEX-Editor) Veränderungen an signierten Programm Dateien vorzunehmen. Das kann schnell in Auge gehen, zumal das auch nicht nötig ist.

Man kann einfach eine (im Programm) eingebettete Manifestdatei durch eine externe Manifestdatei ersetzen und damit den "requestedExecutionLevel" beliebig verändern. Dazu wird in der Registry der Wert für "PreferExternalManifest" gesetzt:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
"PreferExternalManifest"=dword:00000001  

Jetzt kann man eine eine neue Manifestdatei (dateiname.exe.manifest) ins Programmverzeichnis legen. Wer sich die Arbeit sparen möchte benutz Google für eine (einfache) Vorlage der Manifestdatei.

Die gleiche Technik kannst Du auch benutzen um die Bildschirmauflösung von Software (z.B. für den Surface 4) anzupassen face-wink

Manifestdatei-Vorlage:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">  

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"  
      name="Microsoft.Windows.Common-Controls"  
      version="6.0.0.0" processorArchitecture="*"  
      publicKeyToken="6595b64144ccf1df"  
      language="*">  
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"  
      name="Microsoft.VC90.CRT"  
      version="9.0.21022.8"  
      processorArchitecture="*"  
      publicKeyToken="1fc8b3b9a1e18e3b">  
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">  
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"  
        uiAccess="false"/>  
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">  
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>  
  </asmv3:windowsSettings>
</asmv3:application>

</assembly>

Viel Erfolg....