![]() |
Privilegien enumerieren
Gibt es eine API Funktion, die alle verfügbaren Privilegien auflistet? Bisher habe ich die Lite hardgecodet, aber was ist, wenn es bestimmte Privilegien nicht gibt oder neue hinzukommen? Deswegen suche ich eine API Funktion, die mir alle verfügbaren Privilegien auflistet.
|
Re: Privilegien enumerieren
|
Re: Privilegien enumerieren
Fast:
Zitat:
|
Re: Privilegien enumerieren
evtl in Verbindung mit LsaLookupSids, das gibt dir die verfügbaren sids, die du dann in LsaEnumerateAccountRights brauchst.
HTH Frank |
Re: Privilegien enumerieren
das nützt mir nichts, da ich mit LsaEnumerateAccountRights nur die Privilegien bekomme, die einem Konto zugeordnet sind. Was ist aber mit den privilegien, die keinem Konto zugeordnet sind?
|
Re: Privilegien enumerieren
sollte der Administrator-account nicht alle Rechte haben?
eine direkte funktion zum enumerieren aller Rechte hab ich noch nicht gefunden...sry Gruß Frank |
Re: Privilegien enumerieren
Nope.
|
Re: Privilegien enumerieren
Das geht nicht mit "normalen" Mitteln.
Allerdings haben alle Privilegien einen Integer-Wert, den du als LUID angibst. Da diese LUIDs alle dicht an dicht angeordnet sind und vermutlich in Zukunft auch bleiben werden, könntest du ![]() ![]() ![]()
Code:
Da ein LUID im Grunde ein 64bit signed Integer ist, kannst du die entsprechenden Casts verwenden ;)
//
// These must be converted to LUIDs before use. // #define SE_MIN_WELL_KNOWN_PRIVILEGE (2L) #define SE_CREATE_TOKEN_PRIVILEGE (2L) #define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE (3L) #define SE_LOCK_MEMORY_PRIVILEGE (4L) #define SE_INCREASE_QUOTA_PRIVILEGE (5L) // // Unsolicited Input is obsolete and unused. // #define SE_UNSOLICITED_INPUT_PRIVILEGE (6L) #define SE_MACHINE_ACCOUNT_PRIVILEGE (6L) #define SE_TCB_PRIVILEGE (7L) #define SE_SECURITY_PRIVILEGE (8L) #define SE_TAKE_OWNERSHIP_PRIVILEGE (9L) #define SE_LOAD_DRIVER_PRIVILEGE (10L) #define SE_SYSTEM_PROFILE_PRIVILEGE (11L) #define SE_SYSTEMTIME_PRIVILEGE (12L) #define SE_PROF_SINGLE_PROCESS_PRIVILEGE (13L) #define SE_INC_BASE_PRIORITY_PRIVILEGE (14L) #define SE_CREATE_PAGEFILE_PRIVILEGE (15L) #define SE_CREATE_PERMANENT_PRIVILEGE (16L) #define SE_BACKUP_PRIVILEGE (17L) #define SE_RESTORE_PRIVILEGE (18L) #define SE_SHUTDOWN_PRIVILEGE (19L) #define SE_DEBUG_PRIVILEGE (20L) #define SE_AUDIT_PRIVILEGE (21L) #define SE_SYSTEM_ENVIRONMENT_PRIVILEGE (22L) #define SE_CHANGE_NOTIFY_PRIVILEGE (23L) #define SE_REMOTE_SHUTDOWN_PRIVILEGE (24L) #define SE_UNDOCK_PRIVILEGE (25L) #define SE_SYNC_AGENT_PRIVILEGE (26L) #define SE_ENABLE_DELEGATION_PRIVILEGE (27L) #define SE_MANAGE_VOLUME_PRIVILEGE (28L) #define SE_IMPERSONATE_PRIVILEGE (29L) #define SE_CREATE_GLOBAL_PRIVILEGE (30L) #define SE_MAX_WELL_KNOWN_PRIVILEGE (SE_CREATE_GLOBAL_PRIVILEGE) Ich würde eine FOR-Schleife mit SE_MIN_WELL_KNOWN_PRIVILEGE als Anfangspunkt nehmen ... oder WHILE oder so. |
Re: Privilegien enumerieren
Das wäre eine Möglichkiet, wenn auch etwas unelegant. ;)
|
Re: Privilegien enumerieren
Nunja, da Privilegien nur hinzukommen, wenn MS ein neues OS veröffentlicht, nimmt man (zu Recht) an, daß dann auch für eine Anwendung ein neuer Release möglich ist, wenn etwas spezielles unterstützt werden soll. Und gerade Privilegien sind ja nun wirklich nix, was sich ständig ändert.
Ich weiß jetzt nur nicht, ob ich wieder mal "Privileges" und "Account Rights" durcheinandergebracht habe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 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