AGB  ·  Datenschutz  ·  Impressum  







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

Adminrechte für eine Prozedur

Ein Thema von Captnemo · begonnen am 23. Okt 2015 · letzter Beitrag vom 27. Okt 2015
Antwort Antwort
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

AW: Adminrechte für eine Prozedur

  Alt 24. Okt 2015, 10:50
Das könnte ich machen. Ich könnte auch eine .reg erstellen und das mit der machen.
In der Frage ist aber auch ein wenig persönlicher Ehrgeiz drin
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Adminrechte für eine Prozedur

  Alt 24. Okt 2015, 11:05
Diesen Ehrgeiz hatte ich früher auch mal. Jetzt liegt mein Fokus mehr auf der Rente und einer geschmeidigen Zeit bis dahin
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: Adminrechte für eine Prozedur

  Alt 24. Okt 2015, 14:38
Also es ist auf jeden Fall nicht möglich (ohne dreckige Hacks) volle Adminrechte zu erhalten (linked Token) ohne deinen Prozess wie schon vorgeschlagen mit "runas" als Administrator neu zu starten. Wenn es nur um eine kleine Einstellung geht, könntest du deinem Programm einen Parameter verpassen und den Prozess bei Bedarf mit "runas" und diesem Parameter im Hintergrund starten. Notfalls IPC einbauen, wenn du der eingeschränkten Instanz irgendein Feedback geben musst.

Andere Möglichkeit, die auch dann funktionieren würde, wenn der User kein lokaler Administrator ist, wäre die Einrichtung eines System Services bei der Installation. Darüber kannst du dann per IPC alle Operationen ausführen, die erhöhte Rechte verlangen.

Die dritte Möglichkeit wäre der "dreckige Hack", den ich erwähnt hatte. Dieser benötigt auch einen Service oder einen Prozess, der mit Systemrechten läuft (könntest du im laufenden Betrieb - lokaler Administrator vorrausgesetzt - spawnen, indem du den Task Scheduler, bzw. den "at" Command in der Console verwendest).
Dein Programm muss dann mit dem Systemprozess kommunizieren und ihm das Handle des aktuellen Thread Tokens mitteilen. Der Service nutzt dann MSDN-Library durchsuchenDuplicateToken, um besagtes Token in seinen eigenen Prozess zu kopieren. Dann der Systemrechte kann hier jetzt das dazugehörige linked Token ermittelt werden, was wieder per DuplicateToken in den Userprozess kopiert wird. Abschließend schickt der Systemprozess das Handle des reinkopierten Tokens nochmal zurück und der Userprozess elevated seinen Thread über MSDN-Library durchsuchenImpersonateLoggedOnUser.
Achtung: Hier kann man sich schnell Sicherheitslücken (privilege Escalations) einbauen.

Mir persönlich wäre es den Aufwand nicht wert, weshalb ich wohl auf die "runas" Methode zurückgreifen würde. Sauberer ist meiner Meinung nach die Service Methode, aber du hattest glaube ich irgendwo weiter oben erwähnt, dass du keine Installation willst.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz