Privilegien setzen

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Privilegien setzen

Beitrag von cxAlex »

Mit diesem Code kann man schnell Privilegien setzen/rücksetzen die man für manche Aktionen unter Windows braucht:

Code: Alles auswählen

; Setzt Rechte die für manche System-Level Zugriffe nötig sind

; Liste der Privilegien:
; http://msdn.microsoft.com/en-us/library/bb530716%28VS.85%29.aspx

Macro Bool(_Arg)
  ((_Arg) Or #Null)
EndMacro

Procedure SetPrivilege(Privilege$, State = #True, PID = #Null)
  Protected TokenPrivileges.TOKEN_PRIVILEGES, hToken, RtVar
  
  ; Ich hab Spaß am Bool ^^
  ; Total Sinnlos...
  PID = Bool(Not PID)*GetCurrentProcess_() + PID
  State = Bool(State)*#SE_PRIVILEGE_ENABLED
  
  If OpenProcessToken_(PID, #TOKEN_ADJUST_PRIVILEGES | #TOKEN_QUERY, @hToken)
    TokenPrivileges\PrivilegeCount = 1
    If LookupPrivilegeValue_(#Null, Privilege$, TokenPrivileges\Privileges[0]\Luid)
      TokenPrivileges\Privileges[0]\Attributes = State
      If AdjustTokenPrivileges_(hToken, #False, @TokenPrivileges, SizeOf(TOKEN_PRIVILEGES), #Null, #Null)
        RtVar = Bool(GetLastError_() = #ERROR_SUCCESS)
      EndIf
    EndIf
    CloseHandle_(hToken)
    ProcedureReturn RtVar
  EndIf
EndProcedure

Debug SetPrivilege("SeDebugPrivilege")
Gruß, Alex
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Hättest vieleicht en Beispiel was sich dardurch bewirken lassen könnte ?
Hab auch nachdem ich den Wiki Artikel zu Privilegien durchgelesen nicht wirklich ne Idee für was das gut sein könnte.

Also ein Anwendungsbeispiel
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

X360 Andy hat geschrieben:Hättest vieleicht en Beispiel was sich dardurch bewirken lassen könnte ?
Hab auch nachdem ich den Wiki Artikel zu Privilegien durchgelesen nicht wirklich ne Idee für was das gut sein könnte.

Also ein Anwendungsbeispiel
Z.B. "SeShutdownPrivilege" brauchste um Deinen PC ausmachen zu dürfen :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten