| |
|
|
Michael Wodrich | GetAce ermittelt Adresse eines Eintrags (ACE) in einer Access-Control Liste (ACL) eines SACL's oder eines DACL's. Diese Funktion gibt es nur unter NT-basierten Windowssystemen. Ein ACE besteht aus: Dem ACE Header => - Byte 0 = Typ des ACE's 0 = Der ACE erlaubt einen Zugriff (ACCESS_ALLOWED_ACE_TYPE). Gilt für DACL's 1 = Der ACE verbietet einen Zugriff (ACCESS_DENIED_ACE_TYPE) Gilt für DACL's. 2 = Der ACE veranlaßt das Aufzeichnen erfolgreicher oder fehlgeschlafener Zugriffe(SYSTEM_AUDIT_ACE_TYPE). Gilt für SACL's 3 = Zur Zeit noch nicht benutzt (SYSTEM_ALARM_ACE_TYPE). - Byte 1 = ACE Flags Für DACL's: $3 = Der ACE wurde von einem Containerobjekt, z.B. einem Ordner, übernommen (CONTAINER_INHERIT_ACE). $8 = Der ACE kann von enthaltenen Objekten übernommen werden (INHERIT_ONLY_ACE). $4 = (NO_PROPAGATE_INHERIT_ACE) $1 = Der ACE wurde von einem nicht Containerobjekt, z.B. einer Datei, übernommen(OBJECT_INHERIT_ACE). Für SACL's: $80 = Fehlgeschlagene Zugriffe werden aufgezeichnet (FAILED_ACCESS_ACE_FLAG). $40 = Erfolgreiche Zugriffe werden aufgezeichnet (SUCCESSFUL_ACCESS_ACE_FLAG). - Byte 2-3 = Größe des ACE's in Bytes - Byte 4-7 = Zugriffsrechte, d.h. erlaubte oder verbotene Zugriffe: $1 = FILE_READ_DATA (Erlaubt Daten aus einem File zu lesen) $2 = FILE_WRITE_DATA (Erlaubt Daten zu Scheiben) $4 = FILE_APPEND_DATA (Erlaubt Daten anzuhängen) $8 = FILE_READ_EA (Erlaubt erweiterte Attibute zu lesen) $10 = FILE_WRITE_EA (Erlaubt erweiterte Attribute zu schreiben) $20 = FILE_EXECUTE (Erlaubt eine Datei auszuführen) $80 = FILE_READ_ATTRIBUTES (Lesen der Fileattribute) $100 = FILE_WRITE_ATTRIBUTES (Ändern der Fileattribute) $40000 = WRITE_DAC (Ändern der DACL Einträge) $20000 = READ_CONTROL (Lesen der DACL Einträge und Besitzer) $100000 = SYNCHRONIZE (Erlaubt einem FileHandle auf ein 'Complitition I/O' zu warten) $40 = File_Delete_CHILD (Erlaubt einen Unterordner zu löschen - für Dateien keine Bedeutung) $1000000 = ACCESS_SYSTEM_SECURITY (Erlaubt den Zugriff auf den SACL) $80000 = WRITE_OWNER (Eigentümer ändern) $10000 = _DELETE (Datei löschen) - Byte 8-.... = SID des Users oder der Gruppe
Parameter: P:B1 - Adresse einer ACL Struktur bzw. Bereichsvariable mit der Adresse einer ACL Struktur eines DACL's oder eines SACL's. P:L2 - Der Index (Position) des ACE's, dessen Adresse man erhalten möchte. P:B3 - 4 Byte Bereichsvariable, die die Adresse des ACE's aufnimmt.
|
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 29.07.2005 ▲ |
|
|
|