AGB  ·  Datenschutz  ·  Impressum  







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

Privilegien enumerieren

Ein Thema von Luckie · begonnen am 26. Mai 2006 · letzter Beitrag vom 1. Jun 2006
 
Olli
(Gast)

n/a Beiträge
 
#8

Re: Privilegien enumerieren

  Alt 1. Jun 2006, 01:06
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 MSDN-Library durchsuchenLookupPrivilegeName solange aufrufen, bis es fehlschlägt - wobei du den Wert des LUID jeweils um eins erhöhst. Danach kannst du dann den benutzerfreundlichen String über MSDN-Library durchsuchenLookupPrivilegeDisplayName herausfinden. Die Zahlenwerte der MSDN-Library durchsuchenLUIDs findest du im DDK. Hier mal die Liste aus meinem 2003er DDK:
Code:
//
// 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)
Da ein LUID im Grunde ein 64bit signed Integer ist, kannst du die entsprechenden Casts verwenden

Ich würde eine FOR-Schleife mit SE_MIN_WELL_KNOWN_PRIVILEGE als Anfangspunkt nehmen ... oder WHILE oder so.
  Mit Zitat antworten Zitat
 


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 12:11 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