Vista UAC elevation



  • Hallo,

    ich arbeite zur Zeit an einem kleines Security-tool. Um Programme auch in laufzeit zu schützen installiere ich einen globalen Hook mit einer dll, die Tastatureingaben davor schützt, "abgehört zu werden".

    Auf Windows XP funktioniert auch alles wunderbar...
    Bedauerlicher weise sind administrator-rechte unabdingbar, damit die dll funktioniert.

    Gibt es eine möglichkeit, bestimmte Prozesse in der laufzeit zu elevaten? D.H. Administrator Privileges zu "holen".

    In der main application funktioniert es über das manifest wunderbar, aber in der dll, die die gleichen Rechte wie die Applikation in der sie läuft hat macht Probleme.

    Sonst wäre das Projekt für Vista so ziemlich gestorben, ich weiss nicht wie die ganzen Firewalls etc. das hinkriegen wollen.

    Gruß
    Listing


  • Mod

    Nein! Man kann keinen Prozess elevaten!

    Der taskamanager und andere Tools starten sich neu mit neuen Rechten.

    Firewalls und andere Tools basieren oft auf Diensten, die im entsprechenden Admin Kontext laufen... die Kontrollprogramm, die diese ansprechen benötigen keine Adminrechte dazu.

    So könnte das auch für Dich laufen. Lagere die kritischen Sachen in einen Dienst aus...



  • Ok für Vista muss ich es dann wohl in loader-form schreiben.
    Das ist sonst zu viel, ich brauche die elevation für fast jede funktion.



  • Alternativ kann man sich auch einen Out-of-Prozess COM-Server schreiben und die Funktionen in eine COM-Schnittstelle zusammenfassen. Allerdings kommst Du auch hier an der Bestätigungsmeldung nicht vorbei.

    Wenn die Anwendung allerdings mit "requireAdministrator" gestartet wird, dann sollte auch die geladene Dll mit Adminrechten laufen.


Anmelden zum Antworten