Español
Foro

DIE DATEI GEHÖRT MIR!

 
- Página 1 -


¡Hola Profaner...

Yo habe antes, mich demnächst veces algo mäher con el NT/NTFS File-Security a beschäftigen - Mostrar y ändern de Eigentümern y son Zeug para Ejemplo. Sombrero alguien así algo ya veces gemacht (con Security Descriptors gearbeitet) oder hay Interesse a el Thema?
 
11.04.2005  
 



 
- Página 6 -


...nochmals kleine Änderung (a Sicherheit)...
KompilierenMarcaSeparación
Windowstyle 31+512
Windowtitle "File Security"
Window 0,0-640,440
DEF @GetFileSecurity(5) !"ADVAPI32","GetFileSecurityA"
DEF @GetLastError(0) !"KERNEL32","GetLastError"
DEF @SetLastError(1) !"KERNEL32","SetLastError"
DEF @LookupPrivilegeName(4)!"advapi32","LookupPrivilegeNameA" Ermittelt aus dem Luid eines Privilegs dessen Namen.
DEF @LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA" Ermittelt aus dem Namen eines Privilegs dessen Luid.
DEF @OpenProcessToken(3) !"advapi32","OpenProcessToken" Öffnet Einstellprozess.
DEF @AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges" Stellt Privilegien ein.
DEF @GetCurrentProcess(0) !"kernel32","GetCurrentProcess" Ermittel das Handle des aktiven Prozesses.
DEF @CloseHandle(1) !"kernel32","CloseHandle" Schließt ein Handle (Programm).
Def @GetVolumeInformation(8) !"KERNEL32","GetVolumeInformationA"
DEF @GetSecurityDescriptorOwner(3) !"ADVAPI32","GetSecurityDescriptorOwner"
DEF @GetSecurityDescriptorGroup(3) !"ADVAPI32","GetSecurityDescriptorGroup"
DEF @GetSecurityDescriptorDACL(4) !"ADVAPI32","GetSecurityDescriptorDacl"
DEF @GetSecurityDescriptorSACL(4) !"ADVAPI32","GetSecurityDescriptorSacl"
DEF @LookupAccountSid(7) !"ADVAPI32","LookupAccountSidA"
DEF @IsValidSecurityDescriptor(1) !"ADVAPI32","IsValidSecurityDescriptor"
DEF @IsValidSid(1) !"ADVAPI32","IsValidSid"
DEF @IsValidAcl(1) !"ADVAPI32","IsValidAcl"
DEF @GetAclInformation(4) !"ADVAPI32","GetAclInformation"
DEF @CopyMemory(3) !"kernel32","RtlMoveMemory"
DEF @GetAce(3) !"ADVAPI32","GetAce"
DEF @ConvertSidToStringSid(2) !"ADVAPI32","ConvertSidToStringSidA"
DEF @LocalFree(1) !"KERNEL32","LocalFree"
Declare Filename$,Fehler&,PSECURITY_DESCRIPTOR#,Needed#,Needed&
Declare NewState#,token#,Privileg#,Luid#,System$
Declare Laufwerk$,Label#,LFLAGS#,DAT#
DEclare SID#,GFLAG#
DEclare ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#
Declare Test&
Declare ACL_PRESENT#,P_ACL#,ACL_D#
Declare ACL_INFO#,Zähler&,ACE#,P_ACE#,ACE_SIZE&,STRSID#,P_STRSID#
Declare SID2#,IO%,ADDR_NEWSTATE&,PrivCheckBox&,Start&,SecFlag&,ACCESS_MASK&
LET PrivCheckBox&=@CreateCheckBox(%HWND,"Zugriff auf SACL und Eigentümer ermöglichen!",10,200,350,30)
LET Start&=@CreateButton(%HWND,"Programm starten",10,250,200,30)

Whilenot @Getfocus(Start&)

    Waitinput
    CASE %MENUITEM=-2 : end

WEND

EnableWindow PrivCheckBox&,0
EnableWindow Start&,0
LET Filename$=@LOADFILE$("Datei laden","Alle Dateien |*.*|Textdateien|*.TXT")

IF Filename$<>""

    CLEARLIST
    LET LAUFWERK$=@LEFT$(Filename$,3)
    DIM Label#,256
    DIM LFLAGS#,4
    DIM DAT#,256
    DIM STRSID#,256
    DIM P_STRSID#,4
    ADDSTRING "Gewählte Datei="+Filename$
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    LET FEHLER&=@GetVolumeInformation(@ADDR(Laufwerk$),Label#,256,0,0,LFlags#,DAT#,256)
    ADDSTRING "Rückgabe von GetVolumeInformation="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    ADDSTRING "Laufwerksflags="+@BIN$(@LONG(LFLAGS#,0))

    IF @LONG(LFLAGS#,0) | $8 = @LONG(LFLAGS#,0)

        ADDSTRING "Zugriff ist einschränkbar"

    else

        ADDSTRING "Zugriff ist nicht einschränkbar"

    endif

    ADDSTRING "Ausgelesene Partition="+@String$(Dat#,0)
    dim token#,4
    DIM NewState#,16
    DIM Luid#,8
    DIM Privileg#,33
    ADDSTRING "Windowsversion="+$WINVER

    IF @Getcheck(PrivCheckBox&)

        ADDSTRING "Privilegien werden gesetzt!"
        Long NewState#,0=1 Nur ein Privileg soll geändert werden
        Long NewState#,12=$00000002 Das Privileg soll eingeschaltet werden
        LET FEHLER&=@OpenProcessToken(@GetCurrentProcess(),$0020 | $0008,Token#)
        ADDSTRING "Rückgabe von OpenProcessToken="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        Clear Privileg#
        Clear LUID#
        STRING Privileg#,0="SeSecurityPrivilege"
        LET Fehler&=@LookupPrivilegeValue(@addr(System$),Privileg#,LUID#)
        ADDSTRING "Rückgabe von LookupPrivilegeValue für SeSecurityPrivilege="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        ADDSTRING "Reset des API-Fehlers wird durchgeführt"
        @SetLastError(0)
        LET IO%=%IORESULT
        LET ADDR_NEWSTATE&=NewState#
        LET ADDR_NEWSTATE&=ADDR_NEWSTATE&+4
        @CopyMemory(ADDR_NEWSTATE&,Luid#,8)
        ADDSTRING "Letzter API-Fehler nach CopyMemory="+@STR$(@GetLastError())
        Let Fehler&=@AdjustTokenPrivileges(@LONG(Token#,0),0,NewState#,0,0,0)
        ADDSTRING "Rückgabe von AdjustTokenPrivileges="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        Clear NewState#
        Long NewState#,0=1 Nur ein Privileg soll geändert werden
        Long NewState#,12=$00000002 Das Privileg soll eingeschaltet werden
        Clear Privileg#
        Clear LUID#
        STRING Privileg#,0="SeTakeOwnershipPrivilege"
        LET Fehler&=@LookupPrivilegeValue(@addr(System$),Privileg#,LUID#)
        ADDSTRING "Rückgabe von LookupPrivilegeValue fur SeTakeOwnershipPrivilege="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        ADDSTRING "Reset des API-Fehlers wird durchgeführt"
        @SetLastError(0)
        LET IO%=%IORESULT
        LET ADDR_NEWSTATE&=NewState#
        LET ADDR_NEWSTATE&=ADDR_NEWSTATE&+4
        @CopyMemory(ADDR_NEWSTATE&,Luid#,8)
        ADDSTRING "Letzter API-Fehler nach CopyMemory="+@STR$(@GetLastError())
        Let Fehler&=@AdjustTokenPrivileges(@LONG(Token#,0),0,NewState#,0,0,0)
        ADDSTRING "Rückgabe von AdjustTokenPrivileges="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        ADDSTRING "Reset des API-Fehlers wird durchgeführt"
        @SetLastError(0)
        LET IO%=%IORESULT

    else

        ADDSTRING "Privilegien werden nicht!"

    endif

    DIM Needed#,4
    Clear Needed#

    IF @Getcheck(PrivCheckbox&)

        LET SECFLAG&=$1 | $2 | $4 | $8

    else

        LET SECFLAG&=$1 | $2 | $4

    endif

    LET Fehler&=@GetFileSecurity(@ADDR(Filename$),SecFlag&,0,0,Needed#)
    ADDSTRING "Rückgabe von GetFileSecurity="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    LET NEEDED&=@LONG(Needed#,0)
    ADDSTRING "Erforderliche Länge des Security Descriptor="+@STR$(Needed&)
    CASE NEEDED&=0 : LET NEEDED&=1024
    DIM PSECURITY_DESCRIPTOR#,Needed&
    Clear PSECURITY_DESCRIPTOR#
    @SetLastError(0)
    LET Fehler&=@GetFileSecurity(@ADDR(Filename$),SECFLAG&,PSECURITY_DESCRIPTOR#,NEEDED&,Needed#)
    ADDSTRING "Rückgabe von GetFileSecurity="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    LET Fehler&=@IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR#)
    ADDSTRING "Rückgabe von IsValidSecurityDescriptor="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    DIM SID#,4
    DIM GFlag#,4
    Clear SID#
    Clear GFLAG#
    LET FEHLER&=@GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR#,SID#,GFLAG#)
    ADDSTRING "Rückgabe von GetSecurityDescriptorOwner="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    LET Fehler&=@IsValidSid(@long(SID#,0))
    ADDSTRING "Rückgabe von IsValidSid für den Besitzer="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    DIM ACCOUNT_NAME#,256
    DIM SIZE_ACCOUNT#,4
    DIM Domain#,256
    DIM SIZE_DOMAIN#,4
    DIM SID_NAME_USE#,4
    Clear SID_NAME_USE#
    Clear ACCOUNT_NAME#
    Clear Domain#
    Long SIZE_ACCOUNT#,0=255
    LONG SIZE_DOMAIN#,0=255
    LET FEHLER&=@LookupAccountSid(@ADDR(System$),@Long(SID#,0),ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
    ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    ADDSTRING "Reset des API-Fehlers wird durchgeführt"
    @SetLastError(0)
    LET IO%=%IORESULT
    ADDSTRING "Domainname="+@String$(Domain#,0)
    ADDSTRING "Besitzer der Datei="+@String$(ACCOUNT_NAME#,0)
    Clear STRSID#

    IF @VAL(@LEFT$($WINVER,3))>=5.0

        LET FEHLER&=@ConvertSidToStringSid(@Long(SID#,0),P_STRSID#)
        @CopyMemory(STRSID#,@LONG(P_STRSID#,0),255)
        ADDSTRING "String-SID des Besitzers="+@STRING$(STRSID#,0)
        ADDSTRING "Rückgabe von ConvertSidToStringSid="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())

    endif

    LET Fehler&=@LocalFree(@LONG(P_STRSID#,0))
    ADDSTRING "Rückgabe von LocalFree für den String-SID="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    Clear SID_NAME_USE#
    Clear ACCOUNT_NAME#
    Clear Domain#
    Clear SID#
    Clear GFLAG#
    LET FEHLER&=@GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR#,SID#,GFLAG#)
    ADDSTRING "Rückgabe von GetSecurityDescriptorGroup="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    LET Fehler&=@IsValidSid(@long(SID#,0))
    ADDSTRING "Rückgabe von IsValidSid für die primäre Gruppe="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    Long SIZE_ACCOUNT#,0=255
    LONG SIZE_DOMAIN#,0=255
    LET FEHLER&=@LookupAccountSid(@ADDR(System$),@Long(SID#,0),ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
    ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    ADDSTRING "Reset des API-Fehlers wird durchgeführt"
    @SetLastError(0)
    LET IO%=%IORESULT
    ADDSTRING "Domainname="+@String$(Domain#,0)
    ADDSTRING "Primäre Gruppe der Datei="+@String$(ACCOUNT_NAME#,0)
    DIM ACL_PRESENT#,1
    DIM P_ACL#,4
    DIM ACL_D#,4
    Let Fehler&=@GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR#,ACL_PRESENT#,P_ACL#,ACL_D#)
    ADDSTRING "Rückgabe von GetSecurityDescriptorDacl="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
    LET Fehler&=@IsValidAcl(@long(P_ACL#,0))
    ADDSTRING "Rückgabe von IsValidAcl für den DACL="+@STR$(Fehler&)
    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())

    IF @LONG(ACL_PRESENT#,0)=1

        ADDSTRING "DACL ist vorhanden!"

    else

        ADDSTRING "DACL ist nicht vorhanden!"

    endif

    IF @AND(Fehler&=1,@LONG(ACL_PRESENT#,0)=1)

        DIM ACL_INFO#,12
        DIM P_ACE#,4
        CLEAR ACL_INFO#
        Let Fehler&=@GetAclInformation(@long(P_ACL#,0),ACL_INFO#,12,2)
        ADDSTRING "Rückgabe von GetAclInformation="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        ADDSTRING "ACEs in DACL="+@STR$(@LONG(ACL_INFO#,0))
        LET Zähler&=0

        IF @STR$(@LONG(ACL_INFO#,0))<>0

            While Zähler&<@LONG(ACL_INFO#,0)

                Clear P_ACE#
                Let Fehler&=@GetAce(@long(P_ACL#,0),Zähler&,P_ACE#)
                DIM ACE#,4
                Clear ACE#
                @CopyMemory(ACE#,@LONG(P_ACE#,0),4)
                LET ACE_SIZE&=@Word(ACE#,2)
                ADDSTRING "Größe des "+@STR$(@INT(Zähler&+1))+".ACEs="+@STR$(@Word(ACE#,2))

                IF @BYTE(ACE#,0)=0

                    ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_ALLOWED_ACE_TYPE"

                ElseIF @BYTE(ACE#,0)=1

                    ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_DENIED_ACE_TYPE"

                ElseIF @BYTE(ACE#,0)=2

                    ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_AUDIT_ACE_TYPE"

                ElseIF @BYTE(ACE#,0)=3

                    ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_ALARM_ACE"

                endif

                Dispose ACE#
                DIM ACE#,ACE_SIZE&
                Clear SID_NAME_USE#
                Clear ACCOUNT_NAME#
                Clear Domain#
                Clear ACE#
                Long SIZE_ACCOUNT#,0=255
                LONG SIZE_DOMAIN#,0=255
                @CopyMemory(ACE#,@LONG(P_ACE#,0),ACE_SIZE&)
                DIM SID2#,ACE_SIZE&-8
                @CopyMemory(SID2#,@LONG(P_ACE#,0)+8,ACE_SIZE&-8)
                LET FEHLER&=@LookupAccountSid(@ADDR(System$),SID2#,ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
                ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
                ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                ADDSTRING "Reset des API-Fehlers wird durchgeführt"
                @SetLastError(0)
                LET IO%=%IORESULT
                ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf SID="+@String$(ACCOUNT_NAME#,0)
                ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf Domainname="+@String$(Domain#,0)
                ADDSTRING "Accessrechte des "+@STR$(@int(Zähler&+1))+". ACEs=$"+@HEX$(@LONG(ACE#,4))
                LET ACCESS_MASK&=@LONG(ACE#,4)

                IF @or(ACCESS_MASK&,$1F01FF)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_ALL_ACCESS (Vollzugriff)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$1F01FF

                endif

                IF @or(ACCESS_MASK&,$1)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_DATA (Erlaubt Daten aus einem File zu lesen)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$1

                endif

                IF @or(ACCESS_MASK&,$2)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_DATA (Erlaubt Daten zu Scheiben)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$2

                endif

                IF @or(ACCESS_MASK&,$4)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$4

                endif

                IF @or(ACCESS_MASK&,$8)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_EA (Erlaubt erweiterte Attibute zu lesen)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$8

                endif

                IF @or(ACCESS_MASK&,$10)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_EA (Erlaubt erweiterte Attribute zu schreiben)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$10

                endif

                IF @or(ACCESS_MASK&,$20)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_EXECUTE (Erlaubt eine Datei auszuführen)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$20

                endif

                IF @or(ACCESS_MASK&,$80)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_ATTRIBUTES (Lesen der Fileattribute)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$80

                endif

                IF @or(ACCESS_MASK&,$100)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_ATTRIBUTES (Ändern der Fileattribute)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$100

                endif

                IF @or(ACCESS_MASK&,$00040000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=WRITE_DAC (Ändern der DACL Einträge)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$00040000

                endif

                IF @or(ACCESS_MASK&,$00020000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=READ_CONTROL (Lesen der DACL Einträge und Besitzer)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$00020000

                endif

                IF @or(ACCESS_MASK&,$00100000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=SYNCHRONIZE (Erlaubt einem FileHandle auf ein Complitition I/O zu warten)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$00100000

                endif

                IF @or(ACCESS_MASK&,$40)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=File_Delete _Child (Erlaubt einen Unterordner zu löschen - für Dateien keine Bedeutung)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$40

                endif

                IF @or(ACCESS_MASK&,$01000000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=ACCESS_SYSTEM_SECURITY (Erlaubt den Zugriff auf den SACL)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$01000000

                endif

                IF @or(ACCESS_MASK&,$10000000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_ALL"
                    LET ACCESS_MASK&=ACCESS_MASK&-$10000000

                endif

                IF @or(ACCESS_MASK&,$20000000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_EXECUTE"
                    LET ACCESS_MASK&=ACCESS_MASK&-$20000000

                endif

                IF @or(ACCESS_MASK&,$40000000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_WRITE"
                    LET ACCESS_MASK&=ACCESS_MASK&-$40000000

                endif

                IF @or(ACCESS_MASK&,$80000000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_READ"
                    LET ACCESS_MASK&=ACCESS_MASK&-$80000000

                endif

                IF @or(ACCESS_MASK&,$80000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=WRITE_OWNER (Eigentümer ändern)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$80000

                endif

                IF @or(ACCESS_MASK&,$00010000)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=_DELETE (Datei löschen)"
                    LET ACCESS_MASK&=ACCESS_MASK&-$00010000

                endif

                IF @or(ACCESS_MASK&,$1F01FF)=ACCESS_MASK&

                    ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_ALL_ACCESS"
                    LET ACCESS_MASK&=ACCESS_MASK&-$1F01FF

                endif

                IF ACCESS_MASK&>0

                    ADDSTRING "Nicht berechnete Rechte="+@STR$(ACCESS_MASK&)+" ($"+@HEX$(ACCESS_MASK&)+")"

                endif

                LET Zähler&=Zähler&+1
                Dispose SID2#
                Dispose ACE#

            wend

        Endif

        Dispose P_ACE#
        Dispose ACL_INFO#

    Endif

    IF @Getcheck(PrivCheckbox&)

        Clear ACL_PRESENT#,P_ACL#,ACL_D#
        Let Fehler&=@GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR#,ACL_PRESENT#,P_ACL#,ACL_D#)
        ADDSTRING "Rückgabe von GetSecurityDescriptorSacl="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
        LET Fehler&=@IsValidAcl(@long(P_ACL#,0))
        ADDSTRING "Rückgabe von IsValidAcl für den SACL="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())

        IF @LONG(ACL_PRESENT#,0)=1

            ADDSTRING "SACL ist vorhanden!"

        else

            ADDSTRING "SACL ist nicht vorhanden!"

        endif

        IF @AND(Fehler&=1,@LONG(ACL_PRESENT#,0)=1)

            DIM ACL_INFO#,12
            DIM P_ACE#,4
            CLEAR ACL_INFO#,P_ACE#
            Let Fehler&=@GetAclInformation(@long(P_ACL#,0),ACL_INFO#,12,2)
            ADDSTRING "Rückgabe von GetAclInformation="+@STR$(Fehler&)
            ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
            ADDSTRING "ACEs in SACL="+@STR$(@LONG(ACL_INFO#,0))
            LET Zähler&=0

            IF @STR$(@LONG(ACL_INFO#,0))<>0

                While Zähler&<@LONG(ACL_INFO#,0)

                    Clear P_ACE#
                    Let Fehler&=@GetAce(@long(P_ACL#,0),Zähler&,P_ACE#)
                    DIM ACE#,4
                    Clear ACE#
                    @CopyMemory(ACE#,@LONG(P_ACE#,0),4)
                    LET ACE_SIZE&=@Word(ACE#,2)
                    ADDSTRING "Größe des "+@STR$(@INT(Zähler&+1))+".ACEs="+@STR$(@Word(ACE#,2))

                    IF @BYTE(ACE#,0)=0

                        ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_ALLOWED_ACE_TYPE"

                    ElseIF @BYTE(ACE#,0)=1

                        ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=ACCESS_DENIED_ACE_TYPE"

                    ElseIF @BYTE(ACE#,0)=2

                        ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_AUDIT_ACE_TYPE"

                    ElseIF @BYTE(ACE#,0)=3

                        ADDSTRING "ACE Typ des "+@STR$(@INT(Zähler&+1))+".ACEs=SYSTEM_ALARM_ACE"

                    endif

                    IF @or(@BYTE(ACE#,1),$40)=@BYTE(ACE#,1)

                        ADDSTRING @STR$(@INT(Zähler&+1))+".ACE zeichnet erfolgreiche Zugriffe auf."

                    Elseif @or(@BYTE(ACE#,1),$80)=@BYTE(ACE#,1)

                        ADDSTRING @STR$(@INT(Zähler&+1))+".ACE zeichnet fehlgeschlagene Zugriffe auf."

                    endif

                    Dispose ACE#
                    DIM ACE#,ACE_SIZE&
                    Clear SID_NAME_USE#
                    Clear ACCOUNT_NAME#
                    Clear Domain#
                    Clear ACE#
                    Long SIZE_ACCOUNT#,0=255
                    LONG SIZE_DOMAIN#,0=255
                    @CopyMemory(ACE#,@LONG(P_ACE#,0),ACE_SIZE&)
                    DIM SID2#,ACE_SIZE&-8
                    @CopyMemory(SID2#,@LONG(P_ACE#,0)+8,ACE_SIZE&-8)
                    LET FEHLER&=@LookupAccountSid(@ADDR(System$),SID2#,ACCOUNT_NAME#,SIZE_ACCOUNT#,Domain#,SIZE_DOMAIN#,SID_NAME_USE#)
                    ADDSTRING "Rückgabe von LookupAccountSid="+@STR$(Fehler&)
                    ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())
                    ADDSTRING "Reset des API-Fehlers wird durchgeführt"
                    @SetLastError(0)
                    LET IO%=%IORESULT
                    ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf SID="+@String$(ACCOUNT_NAME#,0)
                    ADDSTRING @STR$(@int(Zähler&+1))+". ACE Bezogen auf Domainname="+@String$(Domain#,0)
                    ADDSTRING "Accessrechte des "+@STR$(@int(Zähler&+1))+". ACEs=$"+@HEX$(@LONG(ACE#,4))
                    LET ACCESS_MASK&=@LONG(ACE#,4)

                    IF @or(ACCESS_MASK&,$1F01FF)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_ALL_ACCESS (Vollzugriff)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$1F01FF

                    endif

                    IF @or(ACCESS_MASK&,$1)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_DATA (Erlaubt Daten aus einem File zu lesen)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$1

                    endif

                    IF @or(ACCESS_MASK&,$2)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_DATA (Erlaubt Daten zu Scheiben)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$2

                    endif

                    IF @or(ACCESS_MASK&,$4)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$4

                    endif

                    IF @or(ACCESS_MASK&,$8)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_EA (Erlaubt erweiterte Attibute zu lesen)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$8

                    endif

                    IF @or(ACCESS_MASK&,$10)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_EA (Erlaubt erweiterte Attribute zu schreiben)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$10

                    endif

                    IF @or(ACCESS_MASK&,$20)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_EXECUTE (Erlaubt eine Datei auszuführen)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$20

                    endif

                    IF @or(ACCESS_MASK&,$80)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_READ_ATTRIBUTES (Lesen der Fileattribute)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$80

                    endif

                    IF @or(ACCESS_MASK&,$100)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=FILE_WRITE_ATTRIBUTES (Ändern der Fileattribute)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$100

                    endif

                    IF @or(ACCESS_MASK&,$00040000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=WRITE_DAC (Ändern der DACL Einträge)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$00040000

                    endif

                    IF @or(ACCESS_MASK&,$00020000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=READ_CONTROL (Lesen der DACL Einträge und Besitzer)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$00020000

                    endif

                    IF @or(ACCESS_MASK&,$00100000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=SYNCHRONIZE (Erlaubt einem FileHandle auf ein Complitition I/O zu warten)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$00100000

                    endif

                    IF @or(ACCESS_MASK&,$40)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=File_Delete _Child (Erlaubt einen Unterordner zu löschen - für Dateien keine Bedeutung)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$40

                    endif

                    IF @or(ACCESS_MASK&,$01000000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=ACCESS_SYSTEM_SECURITY (Erlaubt den Zugriff auf den SACL)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$01000000

                    endif

                    IF @or(ACCESS_MASK&,$10000000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_ALL"
                        LET ACCESS_MASK&=ACCESS_MASK&-$10000000

                    endif

                    IF @or(ACCESS_MASK&,$20000000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_EXECUTE"
                        LET ACCESS_MASK&=ACCESS_MASK&-$20000000

                    endif

                    IF @or(ACCESS_MASK&,$40000000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_WRITE"
                        LET ACCESS_MASK&=ACCESS_MASK&-$40000000

                    endif

                    IF @or(ACCESS_MASK&,$80000000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=GENERIC_READ"
                        LET ACCESS_MASK&=ACCESS_MASK&-$80000000

                    endif

                    IF @or(ACCESS_MASK&,$80000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=WRITE_OWNER (Eigentümer ändern)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$80000

                    endif

                    IF @or(ACCESS_MASK&,$00010000)=ACCESS_MASK&

                        ADDSTRING "Recht im "+@STR$(@int(Zähler&+1))+". ACE=_DELETE (Datei löschen)"
                        LET ACCESS_MASK&=ACCESS_MASK&-$00010000

                    endif

                    IF ACCESS_MASK&>0

                        ADDSTRING "Nicht berechnete Rechte="+@STR$(ACCESS_MASK&)+" ($"+@HEX$(ACCESS_MASK&)+")"

                    endif

                    LET Zähler&=Zähler&+1
                    Dispose SID2#
                    Dispose ACE#

                wend

            Endif

            Dispose ACL_INFO#
            Dispose P_ACE#

        Endif

    endif

    IF @Getcheck(PrivCheckbox&)

        LET FEHLER&=@CloseHandle(@LONG(Token#,0))
        ADDSTRING "Rückgabe von CloseHandle="+@STR$(Fehler&)
        ADDSTRING "Letzter API-Fehler="+@STR$(@GetLastError())

    endif

    Dispose ACL_D#
    Dispose P_ACL#
    Dispose ACL_PRESENT#
    Dispose SID_NAME_USE#
    Dispose ACCOUNT_NAME#
    Dispose SIZE_ACCOUNT#
    Dispose Domain#
    Dispose SIZE_DOMAIN#
    Dispose SID#
    Dispose GFLAG#
    Dispose Luid#
    Dispose Privileg#
    Dispose NewState#
    Dispose token#
    Dispose Needed#
    Dispose PSECURITY_DESCRIPTOR#
    Dispose Label#
    Dispose LFlags#
    DISPOSE DAT#
    Dis
a> STRSID# Disponer P_STRSID# @Editbox("API Rückgaben",1) Endif Sinestar encargado %MENUITEM=-2 Waitinput Wend
 
07.05.2005  
 




Michael
Wodrich
Hier mi Ergebnisse (1. sin, 2. MIT Zugriff):
(Win XP Home SP2, Admin-Recht)

[box:f5cfca55e0]
Gewählte Datei=CROFAN$SourceFixstern2.exe
Letzter API-Fehler=1400
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=1400
Laufwerksflags=1010000000011111111
Zugriff es einschränkbar
Ausgelesene Partition=NTFS
Windowsversion=5.1
Privilegien voluntad no!
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=188
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorOwner=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el Besitzer=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=PROFANIUM
Besitzer el Datei=Programmierer
String-SID des Besitzers=S-1-5-21-1820858989-1647371527-101265881-1005
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorGroup=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el primäre Gruppe=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=PROFANIUM
Primäre Gruppe el Datei=Kein
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
ACEs en DACL=4
Größe des 1.ACEs=24
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Administratoren
1. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=SYSTEM
2. ACE Bezogen en Domainname=NT-AUTORITÄT
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 3.ACEs=36
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
3. ACE Bezogen en SID=Programmierer
3. ACE Bezogen en Domainname=PROFANIUM
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 4.ACEs=24
ACE Typ des 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
4. ACE Bezogen en SID=Benutzer
4. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 4. ACEs=$1200A9
Recht en el 4. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 4. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 4. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 4. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 4. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Recht en el 4. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
[/box:f5cfca55e0]
[box:f5cfca55e0]
Gewählte Datei=CROFAN$SourceFixstern2.exe
Letzter API-Fehler=1400
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=1400
Laufwerksflags=1010000000011111111
Zugriff es einschränkbar
Ausgelesene Partition=NTFS
Windowsversion=5.1
Privilegien voluntad gesetzt!
Rückgabe de OpenProcessToken=1
Letzter API-Fehler=1400
Rückgabe de LookupPrivilegeValue para SeSecurityPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Reset des API-Fehlers se durchgeführt
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=188
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorOwner=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el Besitzer=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=PROFANIUM
Besitzer el Datei=Programmierer
String-SID des Besitzers=S-1-5-21-1820858989-1647371527-101265881-1005
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorGroup=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el primäre Gruppe=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=PROFANIUM
Primäre Gruppe el Datei=Kein
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
ACEs en DACL=4
Größe des 1.ACEs=24
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Administratoren
1. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=SYSTEM
2. ACE Bezogen en Domainname=NT-AUTORITÄT
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 3.ACEs=36
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
3. ACE Bezogen en SID=Programmierer
3. ACE Bezogen en Domainname=PROFANIUM
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 4.ACEs=24
ACE Typ des 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
4. ACE Bezogen en SID=Benutzer
4. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 4. ACEs=$1200A9
Recht en el 4. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 4. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 4. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 4. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 4. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Recht en el 4. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Rückgabe de GetSecurityDescriptorSacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el SACL=0
Letzter API-Fehler=1336
SACL es no disponible!
Rückgabe de CloseHandle=1
Letzter API-Fehler=1336
[/box:f5cfca55e0]
MfG
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
07.05.2005  
 



Jepp.

[box:9b80470e9f]Gewählte Datei=Cokumente y EinstellungenPackard BellDesktop1.mp3
Letzter API-Fehler=0
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=0
Laufwerksflags=1010000000011111111
Zugriff es einschränkbar
Ausgelesene Partition=NTFS
Windowsversion=5.1
Privilegien voluntad gesetzt!
Rückgabe de OpenProcessToken=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue para SeSecurityPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Reset des API-Fehlers se durchgeführt
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=164
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorOwner=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el Besitzer=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=C4
Besitzer el Datei=Packard Bell
String-SID des Besitzers=S-1-5-21-789336058-1343024091-854245398-1004
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorGroup=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el primäre Gruppe=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=C4
Primäre Gruppe el Datei=Kein
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
ACEs en DACL=3
Größe des 1.ACEs=36
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Packard Bell
1. ACE Bezogen en Domainname=C4
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=SYSTEM
2. ACE Bezogen en Domainname=NT-AUTORITÄT
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
3. ACE Bezogen en SID=Administratoren
3. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Rückgabe de GetSecurityDescriptorSacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el SACL=0
Letzter API-Fehler=1336
SACL es no disponible!
Rückgabe de CloseHandle=1
Letzter API-Fehler=1336[/box:9b80470e9f]
 
07.05.2005  
 



¡Hola Personas...

Tut me leid, pero yo brauche Archivos con un SACL. Keine el de euch getesteten Archivos ha una SACL. Ein SACL überwacht Zugriffe en el Expediente y esta puede entonces aufgezeichnet voluntad.
Bitte Por favor, veces a la SACL vergeben...
 
07.05.2005  
 




Michael
Wodrich
Yo fürchte, como versteh Yo sólo Bahnhof...
 
Programmieren, das spannendste Detektivspiel der Welt.
07.05.2005  
 



Hab immo kein File con vergebenen SACLs. Como debería Yo z.B. sólo de jemanden por MSN una File enviar dejar - msn vergibt automáticamente SACLs.

Sitze grad a nem Home - hay existiert solch Mgl. ldr. no.

Salve.
 
07.05.2005  
 




CB
¡Hola Andreas,
habe ahora veces versuchsweise en folgender Expediente todos Rechte außer Vollzugriff en Verweigern gesetzt:
[box:67f8a8161e]Gewählte Datei=DROFAN#FORUM#iviewcapture_date_03_03_2005_time_23_10_27.jpg
Letzter API-Fehler=0
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=0
Laufwerksflags=1110000000011111111
Zugriff es einschränkbar
Ausgelesene Partition=NTFS
Windowsversion=5.1
Privilegien voluntad gesetzt!
Rückgabe de OpenProcessToken=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue para SeSecurityPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Reset des API-Fehlers se durchgeführt
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=124
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorOwner=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el Besitzer=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=MMC3
Besitzer el Datei=CB
String-SID des Besitzers=S-1-5-21-1417001333-1004336348-682003330-1003
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorGroup=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el primäre Gruppe=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=MMC3
Primäre Gruppe el Datei=Kein
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
ACEs en DACL=2
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Jeder
1. ACE Bezogen en Domainname=
Accessrechte des 1. ACEs=$301BF
Recht en el 1. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 1. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 1. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
Recht en el 1. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 1. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 1. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 1. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 1. ACE=FILE_WRITE_ATTRIBUTES (Cambio el Fileattribute)
Recht en el 1. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Recht en el 1. ACE=_DELETE (Expediente löschen)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Rückgabe de GetSecurityDescriptorSacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el SACL=0
Letzter API-Fehler=1336
SACL es no disponible!
Rückgabe de CloseHandle=1
Letzter API-Fehler=0[/box:67f8a8161e]
Und danach Vollzugriff verweigern (Yo habs probiert - ließ se no mehr abierto, auch no kopieren etc.):
[box:67f8a8161e]Gewählte Datei=DROFAN#FORUM#iviewcapture_date_03_03_2005_time_23_10_27.jpg
Letzter API-Fehler=0
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=0
Laufwerksflags=1110000000011111111
Zugriff es einschränkbar
Ausgelesene Partition=NTFS
Windowsversion=5.1
Privilegien voluntad gesetzt!
Rückgabe de OpenProcessToken=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue para SeSecurityPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Reset des API-Fehlers se durchgeführt
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=124
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorOwner=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el Besitzer=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=MMC3
Besitzer el Datei=CB
String-SID des Besitzers=S-1-5-21-1417001333-1004336348-682003330-1003
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorGroup=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el primäre Gruppe=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=MMC3
Primäre Gruppe el Datei=Kein
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
ACEs en DACL=2
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Jeder
1. ACE Bezogen en Domainname=
Accessrechte des 1. ACEs=$F01FF
Recht en el 1. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 1. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 1. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
Recht en el 1. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 1. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 1. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 1. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 1. ACE=FILE_WRITE_ATTRIBUTES (Cambio el Fileattribute)
Recht en el 1. ACE=WRITE_DAC (Cambio el DACL Einträge)
Recht en el 1. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Recht en el 1. ACE=File_Delete _Child (Erlaubt una Unterordner a löschen - para Archivos no Bedeutung)
Recht en el 1. ACE=WRITE_OWNER (Eigentümer ändern)
Recht en el 1. ACE=_DELETE (Expediente löschen)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$1F01FF
Recht en el 2. ACE=FILE_ALL_ACCESS (Vollzugriff)
Rückgabe de GetSecurityDescriptorSacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el SACL=0
Letzter API-Fehler=1336
SACL es no disponible!
Rückgabe de CloseHandle=1
Letzter API-Fehler=0[/box:67f8a8161e]
Hilft Usted el más?
Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
08.05.2005  
 



¡Hola IF...

Zumindestens bajo Windows2000 voluntad SACLs no sólo automáticamente vergeben.
Über el Windows Explorer kannst du con Rechtsklick en una Expediente deren Características Mostrar y verändern dejar.
Dort befinden se auch el Sicherheitseinstellungen.
Etwas versteck (Button erweitert) findest du entonces auch el ACL (Überwachung).
Hier veces mi Ergebnisse con encima el Explorer erzeugten SACL.
[box:404d413cad]
Gewählte Datei=H:TestTest 2.doc
Letzter API-Fehler=0
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=0
Laufwerksflags=1110000000011111111
Zugriff es einschränkbar
Ausgelesene Partition=NTFS
Windowsversion=5.0
Privilegien voluntad gesetzt!
Rückgabe de OpenProcessToken=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue para SeSecurityPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Reset des API-Fehlers se durchgeführt
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=212
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorOwner=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el Besitzer=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=VORDEFINIERT
Besitzer el Datei=Administratoren
String-SID des Besitzers=S-1-5-32-544
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorGroup=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el primäre Gruppe=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=ANDREAS-N4WTRUA
Primäre Gruppe el Datei=Kein
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
ACEs en DACL=4
Größe des 1.ACEs=24
ACE Typ des 1.ACEs=ACCESS_DENIED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Hauptbenutzer
1. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 1. ACEs=$200A9
Recht en el 1. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 1. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 1. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 1. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 1. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Größe des 2.ACEs=24
ACE Typ des 2.ACEs=ACCESS_DENIED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Hauptbenutzer
2. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 2. ACEs=$F00E9
Recht en el 2. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 2. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 2. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 2. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 2. ACE=WRITE_DAC (Cambio el DACL Einträge)
Recht en el 2. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Recht en el 2. ACE=File_Delete _Child (Erlaubt una Unterordner a löschen - para Archivos no Bedeutung)
Recht en el 2. ACE=WRITE_OWNER (Eigentümer ändern)
Recht en el 2. ACE=_DELETE (Expediente löschen)
Größe des 3.ACEs=24
ACE Typ des 3.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
3. ACE Bezogen en SID=Administratoren
3. ACE Bezogen en Domainname=VORDEFINIERT
Accessrechte des 3. ACEs=$1F01FF
Recht en el 3. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 4.ACEs=20
ACE Typ des 4.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
4. ACE Bezogen en SID=Jeder
4. ACE Bezogen en Domainname=
Accessrechte des 4. ACEs=$120089
Recht en el 4. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 4. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 4. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 4. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Recht en el 4. ACE=SYNCHRONIZE (Erlaubt una FileHandle en una Complitition I/O a warten)
Rückgabe de GetSecurityDescriptorSacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el SACL=1
Letzter API-Fehler=0
SACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
ACEs en SACL=2
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=SYSTEM_AUDIT_ACE_TYPE
1.ACE características erfolgreiche Zugriffe en.
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Jeder
1. ACE Bezogen en Domainname=
Accessrechte des 1. ACEs=$A2
Recht en el 1. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 1. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 1. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=SYSTEM_AUDIT_ACE_TYPE
2.ACE características fehlgeschlagene Zugriffe en.
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$1
Recht en el 2. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Rückgabe de CloseHandle=1
Letzter API-Fehler=0
[/box:404d413cad]
 
08.05.2005  
 




CB
¡Hola Andreas!
Im Xp ists no bastante como en 2000. Dafür mußte Yo el Überwachung para el ganzen PC einschalten - einzelne Expediente reicht no! - mostrar Dir veces el Screenshots a
[box:93a741abd4]Gewählte Datei=DROFAN#FORUM#SACL-Test.doc
Letzter API-Fehler=0
Rückgabe de GetVolumeInformation=1
Letzter API-Fehler=0
Laufwerksflags=1110000000011111111
Zugriff es einschränkbar
Ausgelesene Partition=NTFS
Windowsversion=5.1
Privilegien voluntad gesetzt!
Rückgabe de OpenProcessToken=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue para SeSecurityPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Rückgabe de LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Letzter API-Fehler después de CopyMemory=0
Rückgabe de AdjustTokenPrivileges=1
Letzter API-Fehler=0
Reset des API-Fehlers se durchgeführt
Rückgabe de GetFileSecurity=0
Letzter API-Fehler=122
Erforderliche Longitud des Security Descriptor=188
Rückgabe de GetFileSecurity=1
Letzter API-Fehler=0
Rückgabe de IsValidSecurityDescriptor=1
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorOwner=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el Besitzer=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=MMC3
Besitzer el Datei=CB
String-SID des Besitzers=S-1-5-21-1417001333-1004336348-682003330-1003
Rückgabe de ConvertSidToStringSid=1
Letzter API-Fehler=0
Rückgabe de LocalFree para el String-SID=0
Letzter API-Fehler=0
Rückgabe de GetSecurityDescriptorGroup=1
Letzter API-Fehler=0
Rückgabe de IsValidSid para el primäre Gruppe=1
Letzter API-Fehler=0
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
Domainname=MMC3
Primäre Gruppe el Datei=Kein
Rückgabe de GetSecurityDescriptorDacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el DACL=1
Letzter API-Fehler=0
DACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
ACEs en DACL=2
Größe des 1.ACEs=20
ACE Typ des 1.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=Jeder
1. ACE Bezogen en Domainname=
Accessrechte des 1. ACEs=$1F01FF
Recht en el 1. ACE=FILE_ALL_ACCESS (Vollzugriff)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=ACCESS_ALLOWED_ACE_TYPE
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$10000000
Recht en el 2. ACE=GENERIC_ALL
Rückgabe de GetSecurityDescriptorSacl=1
Letzter API-Fehler=0
Rückgabe de IsValidAcl para el SACL=1
Letzter API-Fehler=0
SACL es disponible!
Rückgabe de GetAclInformation=1
Letzter API-Fehler=0
ACEs en SACL=2
Größe des 1.ACEs=36
ACE Typ des 1.ACEs=SYSTEM_AUDIT_ACE_TYPE
1.ACE características erfolgreiche Zugriffe en.
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
1. ACE Bezogen en SID=CB
1. ACE Bezogen en Domainname=MMC3
Accessrechte des 1. ACEs=$F01FF
Recht en el 1. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 1. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 1. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
Recht en el 1. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 1. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 1. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 1. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 1. ACE=FILE_WRITE_ATTRIBUTES (Cambio el Fileattribute)
Recht en el 1. ACE=WRITE_DAC (Cambio el DACL Einträge)
Recht en el 1. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Recht en el 1. ACE=File_Delete _Child (Erlaubt una Unterordner a löschen - para Archivos no Bedeutung)
Recht en el 1. ACE=WRITE_OWNER (Eigentümer ändern)
Recht en el 1. ACE=_DELETE (Expediente löschen)
Größe des 2.ACEs=20
ACE Typ des 2.ACEs=SYSTEM_AUDIT_ACE_TYPE
2.ACE características erfolgreiche Zugriffe en.
Rückgabe de LookupAccountSid=1
Letzter API-Fehler=997
Reset des API-Fehlers se durchgeführt
2. ACE Bezogen en SID=Jeder
2. ACE Bezogen en Domainname=
Accessrechte des 2. ACEs=$F01FF
Recht en el 2. ACE=FILE_READ_DATA (Erlaubt Daten de una File a lesen)
Recht en el 2. ACE=FILE_WRITE_DATA (Erlaubt Daten a Scheiben)
Recht en el 2. ACE=FILE_APPEND_DATA (Erlaubt Daten anzuhängen)
Recht en el 2. ACE=FILE_READ_EA (Erlaubt erweiterte Attibute a lesen)
Recht en el 2. ACE=FILE_WRITE_EA (Erlaubt erweiterte Atributos a escribir)
Recht en el 2. ACE=FILE_EXECUTE (Erlaubt una Expediente auszuführen)
Recht en el 2. ACE=FILE_READ_ATTRIBUTES (Lesen el Fileattribute)
Recht en el 2. ACE=FILE_WRITE_ATTRIBUTES (Cambio el Fileattribute)
Recht en el 2. ACE=WRITE_DAC (Cambio el DACL Einträge)
Recht en el 2. ACE=READ_CONTROL (Lesen el DACL Einträge y Besitzer)
Recht en el 2. ACE=File_Delete _Child (Erlaubt una Unterordner a löschen - para Archivos no Bedeutung)
Recht en el 2. ACE=WRITE_OWNER (Eigentümer ändern)
Recht en el 2. ACE=_DELETE (Expediente löschen)
Rückgabe de CloseHandle=1
Letzter API-Fehler=0[/box:93a741abd4]
Das Ahora debe aber passen - oder?
Christian

 
XProfan 8/9.1, Win XP, AMD 64/3200
08.05.2005  
 



¡Hola Christian...

Wunderbar! Exactamente así!!!
Das Auslesen des DACLs scheint ahora also auch a trabajo.
Mit el Setzen bin Yo auch ya algo más.

El Größe uno speziellen ACE hängt de el Größe des enthaltenen SIDs de.

Ein SID scheint siempre mindestens 8 Bytes (una LUID) groß a ser.
El größe uno SIDs dürfte se bastante simplemente con LookupAccountName ermitteln dejar. So langsam Será mejor que te va qué...

Yo voluntad sólo wohl el Größen aller enthaltenen ACEs bestimmen necesario. Erst entonces kann Yo, el neuen ACL dimensionieren y inicializar => el se una Heidenarbeit!

El Proc se entonces así aussehen, daß uno como Parámetro bajo anderem angeben muß, si el ya vorhandenen ACEs obtener bleiben oder gelöscht voluntad debería. Neue Rechte könne así simplemente se instalará.
 
08.05.2005  
 




CB
Fein, super!
Soll Yo Su letztes File bajo NT auch testen oder en el nächste Versión warten?

Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
08.05.2005  
 



 
- Página 7 -


¡Hola Christian...

Nein, NT muß no mehr ser.
 
08.05.2005  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

5.950 Views

Untitledvor 0 min.
JR04.11.2014
Tommy30.01.2014
Andreas Koch05.09.2013
Stephie03.09.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie