AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

UAC-Stigma, UAC-kompatibel

Ein Thema von jik · begonnen am 17. Feb 2015 · letzter Beitrag vom 18. Feb 2015
Antwort Antwort
Seite 1 von 3  1 23      
jik

Registriert seit: 17. Feb 2015
Ort: Klagenfurt
50 Beiträge
 
Delphi 12 Athens
 
#1

UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 16:45
Zuerst einmal schöne Grüße an alle, bin neu hier!

Es dauert immer sehr lange, bis ich mal in einem Forum poste, erst, wenn ich wirklich nicht mehr weiterkomme. Soweit ist es jetzt.

Ausgangssituation:
- Programm Patchwork ist eine sehr aufwendige und umfangreiche Applikation für Autoren
- Geschrieben unter Delphi5 (ja, ich weiß, das XE6 wartet schon seit Monaten - keine Zeit)
- Ich muss Patchwork so hinbekommen, dass keine lästigen UAC-Abfragen mehr auftreten
- Entwicklung VMWare XP, Wirt Win 8.1, Test-VMWare Win 7

1. Herausforderung - wo ist der Haken?
Wie komme ich dahinter, was UAC-Reklamationen auslöst? Dazu habe ich lange im Netz recherchiert.
- Nachsehen, ob gewisse Wörter in der Applikation auftauchen (Update, Setup ...) > nein.
- Schreibt das Prg. auf den Programmordner zu? Ja, auf Unterordner, aber nicht beim Start
- HKCU-Zugriff > nein

aus dem allen ergab sich dann die

2. Herausforderung - wie werde ich das UAC-Stigma los?
Bei all diesen Vorgängen UAC auf Halbmast = vorletzter Raster von unten und dadurch ständige Admin-Abfragen, was ja klar ist. Entwicklung nicht auf dem Testrechner, sondern fertige Exe oder Setup immer zum Testrechner kopiert, um echte Anwendersituation zu simulieren
- Also habe ich begonnen, die allererste Version von vor 2 Mannjahren - bei der auch schon die UAC anschlägt - zu entkernen. Dachte mir, wenn der kritische Part weg ist, wird es plötzlich klappen, wie das ja sonst so geht. Also zuerst mal Routinen ausgeremt und immer wieder probiert. Dann Controls entfernt. Dann alle Routinen entfernt. Dann uses-Klausel bis auf die 4,5 Mindestunits entleert. Fazit: UAC schlägt immer noch an. Hä?
- Eine neue Exe gemacht (leeres Form mit ein par beliebigen Controls) und in dasselbe Verzeichnis (c:\Programme\Patchwork) kopiert > geht.
- Dieselbe Exe mit dem Kopieren umbenannt in Patchwork.exe > UAC. *kopfkratz*
- Patchwork.exe im Programmverzeichnis umkopiert auf Patch.exe > geht!
- Patchwork.exe außerhalb umbenannt in Pat.exe und hineinkopiert > UAC.
Fazit: Das Win7 scheint sich irgendwo zu merken, dass Patchwork.exe unkoscher ist und meckert vorsichtshalber ohne nachzusehen??
Frage: Wo kann ich das UAC-Stigma, das die exe Patchwork.exe offenbar hat, wieder entfernen? Denn so kann ich nicht testen, wann es passt und wann nicht.

Für eure Unterstützung wäre ich sehr dankbar!
Jik
Martin Danesch
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#2

AW: UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 16:56
Es gibt z.B. ein Manifest, mit dem kann man Windows sagen was es machen soll.
Kennt man oftmals unter mehreren Namen, welche eine der möglichen Funktionen beschreibt, wie z.B. das "XP-Manifest", damit das Programm den "neuen" GUI-Style bekommt, oder "Admin-Manifest", damit es immer als Admin gestartet wird, und Vieles mehr.

Wenn man ihm nichts sagt, dann wendet Windows gern mal Heuristiken an, um eventuell "richtig" reagieren zu können (siehe "Update" im Namen).
Was genau alles geprüft wird, kann man schlecht sagen. (Dateiname, Beschreibung in den Dateieigenschaften, verwendete "statisch" eingebundene APIs, Dateisignaturen/Hashs ...)


Hier im Forum suchenManifest-Creator
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Feb 2015 um 17:12 Uhr)
  Mit Zitat antworten Zitat
jik

Registriert seit: 17. Feb 2015
Ort: Klagenfurt
50 Beiträge
 
Delphi 12 Athens
 
#3

AW: UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 17:02
Es gibt z.B. ein Manifest, mit dem kann man Windows sagen was es machen soll.
Danke himitsu!
Darüber habe ich auch schon gelesen. Bevor ich mich hineinknie: kann man via Manifest angeben, dass z.B. nach der ersten Userbestätigung (noch besser ohne) keine Frage mehr kommen soll?
Ich habe nämlich so die Befürchtung, dass das gar nicht geht, das würde dann ja auch jede Malware nutzen ...
Martin Danesch
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#4

AW: UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 17:14
Nein, eine Frage komm immer, wenn UAC aktiv und noch höhere Rechte benötigt werden, denn sonst könnten sich Viren und Trojaner doch zu leicht alle Rechte besorgen.

Aber man kann z.B. sagen "nur mit normalen Rechten starten" (asInvoker)
Hatte oben den falschen Link ... siehe Abschnitt/Menüpunkt "Sicherheit".
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#5

AW: UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 17:19
Wenn dein Programm in seinem Programmverzeichnis schreibt, dann solltest du
  • das so abändern, dass das nicht mehr notwendig ist - dies ist die am ehesten anzustrebende Lösung
  • wenn das unumgänglich ist, es entweder als Admin laufen lassen (ganz böse)
  • oder die Zugriffsrechte der Verzeichnisse anpassen, und zwar bitte nur so weit öffnen, wie das unbedingt erforderlich ist. Schon das Recht "Ändern" schließt das Löschen von Dateien mit ein!
Und natürlich muss die Anwendung ein Manifest bekommen, denn ohne solches schlägt in jedem Fall die Virtualisierung von Dateien zu (Stichwort VirtualStore).

MfG Dalai
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 19:48
Ich kenne mich mit der Thematik auch nicht wirklich aus, aber ein verstehe ich nicht: Wie treten solche "Anfragen" denn aus heiterem Himmel auf?

Entweder deine Anwendung verlangt mittels diesem "Manifest" vor dem Ausführen nach höheren Rechten. Das sieht man im Explorer auch immer an diesem Schildsymbol.

Oder es hat keine administrativen Rechte und wenn es Dinge versucht die es nicht kann (z.B. in C:\Programme schreiben) dann schlagen diese Dinge fehl. Aber es erscheinen nicht von alleine UAC-Abfragen.


Oder habe ich etwas verpasst?
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#7

AW: UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 20:08
...Wie treten solche "Anfragen" denn aus heiterem Himmel auf?
Gar nicht! Er versucht wo hinzuschreiben, wo er keine Rechte hat. Wenn man das anpasst, sollte das alles ohne UAC klappen. Muss denn noch in geschützte Bereiche geschrieben werden, muss man mit der UAC leben.

Oder man gibt dem Ganzen von Anfabg an Admin-Rechte.
Gruß
Cookie
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 20:08
Ich kenne mich mit der Thematik auch nicht wirklich aus, aber ein verstehe ich nicht: Wie treten solche "Anfragen" denn aus heiterem Himmel auf? Entweder deine Anwendung verlangt mittels diesem "Manifest" vor dem Ausführen nach höheren Rechten. Das sieht man im Explorer auch immer an diesem Schildsymbol. Oder es hat keine administrativen Rechte und wenn es Dinge versucht die es nicht kann (z.B. in C:\Programme schreiben) dann schlagen diese Dinge fehl. Aber es erscheinen nicht von alleine UAC-Abfragen. Oder habe ich etwas verpasst?
Dieselbe Frage hab ich mir eben auch gestellt und mal nachgeschaut, was das eigentlich für eine Software ist. Wieso man dafür irgendwelche besonderen Rechte benötigen soll, erschließt sich mir ganz und gar nicht. Wie du kann ich mir nur vorstellen, daß das Programm in gewissen Bereichen schlecht konzipiert ist und z.B. im Programmordner Schreibrechte benötigt. Von alleine erscheinen, wie du schon festgestellt hast, keine UAC-Abfragen. Ich selbst hatte noch nie solche Probleme, obwohl ich auch unter XP anfing, Delphi zu programmieren.

Wie komme ich dahinter, was UAC-Reklamationen auslöst? Dazu habe ich lange im Netz recherchiert.
- Nachsehen, ob gewisse Wörter in der Applikation auftauchen (Update, Setup ...) > nein.
- Schreibt das Prg. auf den Programmordner zu? Ja, auf Unterordner, aber nicht beim Start
- HKCU-Zugriff > nein
Willkommen in der Delphi-Praxis

Wenn du in den Programmordner zu schreiben versuchst, benötigst du ab Windows Vista Admin-Rechte. Das dient der Sicherheit vor Viren und Malware. Ich würde an deiner Stelle einfach das jeweilige User-Verzeichnis als Speicherort wählen oder das Public-Verzeichnis. In letzteres kannst du ohne Einschränkungen schreiben, in das Verzeichnis des angemeldeten Uses kann natürlich nur dieser schreiben.

Also statt das zu beschreibende Verzeichnis mit MeinOrdner := ExtractFilePath(ParamStr(0)); zu wählen, nimmst du den entsprechenden "Specialfolder". Wie das genau geht, kannst du z.B. dort nachlesen. Des weiteren findest du hier eine Liste der virtuellen Verzeichnisse.

Geändert von Perlsau (17. Feb 2015 um 20:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#9

AW: UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 20:10
@Günther: Ja und nein. Du hast recht für den Fall, dass ein Programm kein Manifest hat, denn dann nimmt Windows an, dass das Programm nicht mit WinX kompatibel ist, und Schreibzugriffe auf geschützte Verzeichnisse werden auf den VirtualStore umgeleitet und es kommt keine UAC-Abfrage. Leider gibt's auch heutzutage noch solcherlei Software, sogar eine bekannte für Fluchtpläne .

Es gibt aber eine globale Microsoft Application Compatibility Database im Windows (*), in der für einige Programme Kompatibilitätseinstellungen stehen. Trifft man nun "durch Zufall" einen darin vermerkten Eintrag, kann das ebenfalls dazu führen, dass die UAC anspringt. So etwas ähnliches ist mir passiert, was mich selbst mehrere Tage Arbeit gekostet hat, um das überhaupt erstmal rauszufinden und schließlich zu beheben .

Dann gibt es die bereits erwähnte "Heuristik", mit der Windows versucht zu ermitteln, ob ein Programm kompatibel ist (mit Vista, Win7, Win8 usw), anhand von Eigenschaften der EXE.

(*) Wer es genau wissen will: diese DB findet man in der Datei %SystemRoot%\AppPatch\sysmain.sdb. Diese ist nicht veränderbar, man kann deren Einträge nur durch eine eigene (benutzerdef. DB) ergänzen und die festen DB-Einträge durch Registry-Einträge überstimmen/außer Kraft setzen.

MfG Dalai
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: UAC-Stigma, UAC-kompatibel

  Alt 17. Feb 2015, 20:26
- HKCU-Zugriff > nein
Meinst du wirklich HKCU oder HKLM? Wenn du TRegistry.Create ohne Parameter aufrufst wird meines Wissens nach KEY_ALL_ACCESS gesetzt (= Schreibrechte werden angefordert). Das könnte schon deine UAC-Abfrage auslösen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz