| |
|
|
Michael Wodrich | GetTokenInformation liest aus dem Access Token eines eingelogten Users Informationen aus (u.a. circa diesen User).
Deklaration: DEF @GetTokenInformation(5) !"advapi32","GetTokenInformation"
Parameter:
P:L1 | Handle des Access Token. Das Handle muß TOKEN_QUERY ($8) Zugriffrechte haben. Soll die Quelle des Tokens ermittelt werden, ist auch TOKEN_QUERY_SOURCE Access nötig ($10). | P:L2 | Ein TOKEN_INFORMATION_CLASS Flag, der angibt welche Informationen ausgelesen werden sollen. =>
Flag | Bedeutung | $1 | = Ermittelt den Usernamen (den SID des Users) aus dem Token (TokenUser) | $2 | = Ermittelt die Gruppen (SID?s der Gruppen), in denen der User Mitglied ist (TokenGroups). | $3 | = Ermittelt die Privilegien (LUID?s) und deren Attribute, circa die der User verfügt (TokenPrivileges). | $4 | = Ermittelt den User oder die Gruppe (SID), die beim Erstellen von Objekten als Eigentümer eingetragen wird (TokenOwner). | $5 | = Ermittelt die Primäre Gruppe (SID) des Users (TokenPrimaryGroup). | $6 | = Ermittelt den DACL, der beim Erzeugen von Objekten durch den User als Standard verwendet wird (TokenDefaultDacl). | $7 | = Ermittelt die Quelle eines Token (TokenSource). | $8 | = Ermittelt den Typ des Token (TokenType). | $9 | = Ermittelt den Security Impersonation Level eines Impersonation Token (TokenImpersonationLevel).). | $10 | = Ermittelt Daten circa die ID des Token (TokenId), die ID der Session (AuthenticationId), den Typ des Token, den Impersonation Level eines Imoersonation Token (ImpersonationLevel), den verwendeten Speicherplatz (DynamicCharged), die Anzahl der Gruppen im Token (GroupCount), die Anzahl der Privilegien im Token (PrivilegeCount) und circa die letzte Veränderung des Token (ModifiedId). |
| P:B3 | Eine Bereichsvariable, die die angefragten Daten aufnimmt: Wenn Parameter 2 den folgenden Wert hat..., dann...
Par.2 | dann ist Parameter 3... | $1 | eine 8 Byte grande TOKEN_USER Struktur.=>
Bytes | Beschreibung | 0-3 | = Adresse des SID des Users, den der Token personifiziert. | 4-7 | = Flags per die Attribute des SID?s des Users, zur Zeit nicht genutzt. |
| $2 | eine TOKEN_GROUPS Struktur, die aus einem Array aus SID_AND_ATTRIBUTES Strukturen und der Anzahl der Gruppen besteht:
Bytes | Beschreibung | 0-3 | = Anzahl der Gruppen in dem Array. | 4-7 | = Adresse des SID?s der 1.Gruppe. | 8-11 | = Flags per die Attribute des SID?s der 1. Gruppe:
Flag-Wert | Bedeutung | $1 | = Gruppe kann nicht gelöscht werden (SE_GROUP_MANDATORY). | $2 | = Gruppe ist standardmäßig aktiviert (SE_GROUP_ENABLED_BY_DEFAULT). | $4 | = Gruppe ist aktiv (SE_GROUP_ENABLED). | $8 | = Gruppe kann ein Eigentümer von Objekten sein (SE_GROUP_OWNER). | $C0000000 | = Gruppe ist ein Logonname (SE_GROUP_LOGON_ID). |
| 12-15 | = Adresse des SID?s der 2.Gruppe. | 16-19 | = Flags per die Attribute des SID?s der 2. Gruppe | ... | ... |
| $3 | eine 4 Byte grande TOKEN_Owner Struktur.=>
Bytes | Beschreibung | 0-3 | = Anzahl der Privilegien in dem Array. | 4-11 | = LUID des 1.Privilegs. | 12-15 | = Flags per die Attribute des 1.Privilegs:
Flagwert | Bedeutung | $0 | = Privileg ist deaktiviert. | $1 | = Privileg ist standardmäßig aktiviert. | $2 | = Privileg ist aktiviert. | $80000000 | = Privileg wurde zum Zugriff benutzt. |
| 16-23 | = LUID des 2.Privilegs. | 24-27 | = Flags per die Attribute des 2.Privilegs: | | -.... |
| $4 | eine 4 Byte grande TOKEN_OWNER Struktur.=>
Bytes | Beschreibung | 0-3 | = Adresse des SID?s des Users oder der Gruppe, die beim Erstellen von Objekten als Eigentümer eingetragen wird. |
| $5 | eine 4 Byte grande TOKEN_PRIMARY_GROUP Struktur.=>
Bytes | Beschreibung | 0-3 | = Adresse des SID?s der Primären Gruppe des Users. |
| $6 | eine 4 Byte grande TOKEN_DEFAULT_DACL Struktur.=>
Bytes | Beschreibung | 0-3 | = Adresse des DACL?s, der beim Erzeugen von Objekten durch den User als Standard verwendet wird. |
| $7 | eine 16 Byte grande TOKEN_SOURCE Struktur.=>
Bytes | Beschreibung | 0-7 | = 8 Byte großer Charakterstring, der die Quelle des Token angibt. | 8-15 | = LUID der Quelle des Token. |
| $8 | eine 4 Byte grande TOKEN_TYPE Struktur, deren LongInt Wert die Art des Token angibt.=>
Wert | Bedeutung | $1 | = Primärer Token (TokenPrimary). | $2 | = Impersonation Token (TokenImpersonation) |
| $9 | eine 4 Byte grande SECURITY_IMPERSONATION_LEVEL Struktur, deren LongInt Wert den Impersonation Level des Token angibt, wenn dieser ein Impersonation Token ist. =>
Wert | Bedeutung | $1 | = SecurityAnonymous | $2 | = SecurityIdentification | $3 | = SecurityImpersonation | $4 | = SecurityDelegation |
| $10 | eine 52 Byte grande TOKEN_STATISTICS Struktur.=>
Bytes | Beschreibung | 0-7 | = LUID, der die ID des Token repräsentiert. | 8-15 | = LUID, der die Session repräsentiert. | 16-19 | = Ablaufzeit des Token. Zur Zeit nicht supportati. | 20-23 | = Flag per die Art des Token.
Flagwert | Bedeutung | $1 | = Primärer Token (TokenPrimary). | $2 | = Impersonation Token (TokenImpersonation) |
| 24-27 | = Impersonation Level des Token, wenn dieser ein Impersonation Token ist.
Wert | Bedeutung | $1 | = SecurityAnonymous | $2 | = SecurityIdentification | $3 | = SecurityImpersonation | $4 | = SecurityDelegation |
| 28-31 | = Die Anzahl der Bytes, die zum Speichern von Primärer Gruppe und DACL reserviert sind. | 32-35 | = Die Anzahl der Bytes, die im reservierten Speicherbereich von Primärer Gruppe und DACL noch frei sind. | 36-39 | = Anzahl der Gruppen im Token als LongInt. | 40-43 | = Anzahl der Privilegien im Token als LongInt. | 44-51 | = LUID der sich jedes Mal ändert, wenn sich etwas im Token verändert. |
|
| P:L4 | Die größe in Bytes des Bereichs aus Parameter 3 | P:B5 | 4 Byte Bereichsvariable, die die Anzahl der per Parameter 3 benötigten Bytes aufnimmt. Ist diese Zahl größer als Parameter 4, werden keine Daten in Parameter 3 übertragen und die Funktion schlägt fehl. | Diese Funktion gibt es nur unter NT-basierten Windowssystemen.
|
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 19.11.2005 ▲ |
|
|
|