AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Vista und die Dateierweiterung (UAC "On-Demand")

Vista und die Dateierweiterung (UAC "On-Demand")

Ein Thema von MCXSC · begonnen am 25. Jan 2009 · letzter Beitrag vom 30. Jun 2009
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von himitsu
himitsu

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

Re: Vista und die Dateierweiterung (UAC "On-Demand"

  Alt 24. Jun 2009, 07:11
ich hatte mal vor Langem was mit CreateProcessAsUser gemacht und da vorher eine Userliste ausgelesen, diese in einem ialog angezeigt und dann selber gefragt ... k.A. ob/wie das anders geht, aber zumindestens passte es so in den Style des Programmes rein

[add] Es könnte sein, daß ein Dialog aufpoppt, wenn man kein Passowrt bzw. Benutzernamen angibt?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#12

Re: Vista und die Dateierweiterung (UAC "On-Demand"

  Alt 29. Jun 2009, 04:32
Zitat von jaenicke:
Einen laufenden Prozess kann man aus Sicherheitsgründen nicht nachträglich mit Adminrechten ausstatten. Die bekommt man beim Start oder nicht.
Doch, genau das ist (zumindest mit Vista und W7) möglich. Siehe Screenshot. Das Programm (KeePass btw) wird ganz normal (also ohne UAC oder Adminrechte) gestartet. Für jene Verknüpfung braucht man (da Registryeintrag) eben Adminrechte; nach dem Drücken des Buttons fragt UAC eben nach ob das erlaubt werden soll (und es ist und bleibt die KeePass.exe - also wird keine zweite EXE aufgerufen).
Miniaturansicht angehängter Grafiken
shieldelevation_294.jpg  
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#13

Re: Vista und die Dateierweiterung (UAC "On-Demand"

  Alt 29. Jun 2009, 06:07
Zitat von MCXSC:
Zitat von jaenicke:
Einen laufenden Prozess kann man aus Sicherheitsgründen nicht nachträglich mit Adminrechten ausstatten. Die bekommt man beim Start oder nicht.
Doch, genau das ist (zumindest mit Vista und W7) möglich. Siehe Screenshot. Das Programm (KeePass btw) wird ganz normal (also ohne UAC oder Adminrechte) gestartet. Für jene Verknüpfung braucht man (da Registryeintrag) eben Adminrechte; nach dem Drücken des Buttons fragt UAC eben nach ob das erlaubt werden soll (und es ist und bleibt die KeePass.exe - also wird keine zweite EXE aufgerufen).
Dann wird eben KeePass.exe ein zweites mal gestartet. Windows hat leider keine Funktionalität um Threads oder bestimmte APIs getrennt zu priviligieren. Es gibt in Windows also nur die große Keule: Admin ja oder nein.

Oh und btw, der User-level Knoten, der HK_CR abbildet ist HK_CU/Software/CLasses.
Damit kannst du sowohl COM-Registraturen erledigen, also auch File-extensions verknüpfen.[1]

Wobei man mit Fileextensions eigentlich nur sagen sollte: "Jupp, mein Tool kann .xyz öffnen", aber nicht als Default einzutragen.
Einfach so umbiegen hat so einen penetranten Beigeschmack, IMO.

[1] Wenn es en .Net COM Server ist, kann regasm das schon von sich aus.
Für native COM Server musst du regcap.exe aus dem WindowsSDK nehmen. Das gibt dir eine .reg Datei anstelle einer Registrierung, und die kannst du einfach von HK_CR auf HK_CU/Software/Classes ändern.
Für UAC brauchst du einen Out-Of-Process COM Server.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Vista und die Dateierweiterung (UAC "On-Demand"

  Alt 29. Jun 2009, 10:14
Zitat von MCXSC:
und es ist und bleibt die KeePass.exe - also wird keine zweite EXE aufgerufen
Wurde das Programm installiert? Dann kann auch eine DLL registriert worden sein und diese die Registrierung übernommen haben, davon siehst du ja nichts. Das hat Elvis ja in der letzten Zeile auch erwähnt.

Oder es hat sich eben wie gesagt selbst neu gestartet. So mache ich es ggf. auch, damit ich auf dem Rechner nix vorher installieren muss.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#15

Re: Vista und die Dateierweiterung (UAC "On-Demand"

  Alt 30. Jun 2009, 10:14
Zitat von MCXSC:
Zitat von mirage228:
Vielleicht hilft Dir ja dieser Artikel darüber:
http://blog.delphi-jedi.net/2008/03/...ta-with-jwscl/
Nachdem ich mir das ganze nochmals angesehen habe: Nein, leider nicht wirklich. Hier müsste man ja - sofern ich den Ansatz richtig verstehe - nochmals mittels Adminrechte eine COM registrieren... Dann kann ich direkt das ganze Programm so mit Adminrechten starten lassen.

Nur gibt es manche "One-EXE-Programme", die anfangs keine Abfrage haben (und dementsprechend auch keine COM-Datei registrieren) und trotzdem nur für bestimmte Funktionen explizit Adminrechte anfordern. Bringt Vista da wirklich keine eigene Abfrage mit?
So, wie ich es sehe, hast du den Artikel nicht verstanden. Er beschreibt nämlich zwei mögliche Ansätze, um Elevation zu nutzen. Der erste Ansatz ist der ShellExecute Ansatz mit dem runas-Verb, welches auf die eigene Exe-Datei angewendet wird (du hast sie "One-EXE-Programme" genannt). Der zweite Ansatz nutzt dann erst COM, um mit seiner Hilfe spezielle Methoden mit Adminrechten auszuführen.

Der erste Ansatz hat den Vorteil, dass es Addhoc geht, also keine Installation notwendig ist. Der Nachteil besteht jedoch darin, dass die Kommunikation auwändig ist. Wurde alle richtig ausgeführt? Was ist mit den Resultaten? Da wirst du nicht um eine Interprozesskommunikation herumkommen, wenn du dich nicht auf den Prozessrückgabewert beschränken willst.
Der zweite Ansatz, wie du schon weißt, hat den Nachteil, dass man ein COM-Objekt bei Windows registrieren muss. Die Windowsinstaller (MSI) besitzen jedoch schon einen Dienst, der es ermöglicht, dass erst bei einer Notwendigkeit, die UAC aufpoppt (z.b. vor dem Dateikopieren). Der Vorteil im zweiten Ansatz besteht darin, dass man eine ganz normale Methode aufruft und alle Daten, die als Parameter übergeben oder von der Methode zurückgeliefert werden, von COM (mit Einschränkungen) verwaltet werden.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Vista und die Dateierweiterung (UAC "On-Demand"

  Alt 30. Jun 2009, 10:18
Zitat von Dezipaitor:
Da wirst du nicht um eine Interprozesskommunikation herumkommen, wenn du dich nicht auf den Prozessrückgabewert beschränken willst.
Wobei das ja z.B. mit MMFs, Messages, ... relativ einfach ist Daten hin- und herzuschieben.

Die Vorgehensweise mit COM finde ich da eher schwieriger zu implementieren, auch wenn die Verwendung danach einfacher ist.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#17

Re: Vista und die Dateierweiterung (UAC "On-Demand"

  Alt 30. Jun 2009, 13:27
Nicht ganz so einfach, wie man denkt. Da WindowsNachrichten nicht so einfach funktionieren, wenn man mit Adminprozessen reden will. Und den Rest, naja, da kommen immernoch die Rechtegeschichten zum tragen, d.h. DACL.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Vista und die Dateierweiterung (UAC "On-Demand"

  Alt 30. Jun 2009, 13:30
Ich muss zugeben, dass ich mich da nicht so viel mit beschäftigt habe, aber bisher klappt das wie es soll mit der Kommunikation in beide Richtungen. *klopft auf Holz*
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:46 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