Forum | | | | - Page 1 - |
| | Hello Profaner...
I have to, me soon time something mowers with the NT/NTFS File-Security To keep busy - Show and Change of Eigentümern and son stuff to that example. has someone such a thing already time made (with Security Descriptors worked) or there interest on the Topic? |
| | | | |
| | | | - Page 6 - |
| | | Hello Christian...
try time with Wordpad a File to create. About whom Explorer and properties can you then over The advanced Sicherheitseinstellungen this File the File a SACL mitgeben. what becomes then with this File displayed? |
| | | | |
| | | ...over again small Änderung (to safety)... CompileMarkSeparationWindowstyle 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#
Dispose P_STRSID#
@ Editbox("API Rückgaben", 1)
Endif
Whilenot % MENUITEM=-2
Waitinput
Wend
|
| | | | |
| | Michael Wodrich | here my Results (1. without, 2. MIT grabbed): (Win XP Home SP2, Admin-right)
[box:f5cfca55e0] chosen Datei=CROFAN$SourceFixstern2.exe last API-Fehler=1400 Return of GetVolumeInformation=1 last API-Fehler=1400 Laufwerksflags=1010000000011111111 grabbed is einschränkbar Ausgelesene Partition=NTFS Windowsversion=5.1 Privilegien go not! Return of GetFileSecurity=0 last API-Fehler=122 Erforderliche length the Security Descriptor=188 Return of GetFileSecurity=1 last API-Fehler=0 Return of IsValidSecurityDescriptor=1 last API-Fehler=0 Return of GetSecurityDescriptorOwner=1 last API-Fehler=0 Return of IsValidSid for Besitzer=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=PROFANIUM owner the Datei=Programmierer String-SID the Besitzers=S-1-5-21-1820858989-1647371527-101265881-1005 Return of ConvertSidToStringSid=1 last API-Fehler=0 Return of LocalFree for String-SID=0 last API-Fehler=0 Return of GetSecurityDescriptorGroup=1 last API-Fehler=0 Return of IsValidSid for primäre Gruppe=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=PROFANIUM Primäre group the Datei=Kein Return of GetSecurityDescriptorDacl=1 last API-Fehler=0 Return of IsValidAcl for DACL=1 last API-Fehler=0 DACL is present! Return of GetAclInformation=1 last API-Fehler=0 ACEs in DACL=4 Size the 1.ACEs=24 ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 1. ACE related on SID=Administratoren 1. ACE related on Domainname=VORDEFINIERT Accessrechte the 1. ACEs=$1F01FF right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 2.ACEs=20 ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 2. ACE related on SID=SYSTEM 2. ACE related on Domainname=NT-AUTORITÄT Accessrechte the 2. ACEs=$1F01FF right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 3.ACEs=36 ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 3. ACE related on SID=Programmierer 3. ACE related on Domainname=PROFANIUM Accessrechte the 3. ACEs=$1F01FF right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 4.ACEs=24 ACE type the 4.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 4. ACE related on SID=Benutzer 4. ACE related on Domainname=VORDEFINIERT Accessrechte the 4. ACEs=$1200A9 right in the 4. ACE=FILE_READ_DATA (allows Data from one File To reading) right in the 4. ACE=FILE_READ_EA (allows erweiterte Attibute To reading) right in the 4. ACE=FILE_EXECUTE (allows a File to execute) right in the 4. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) right in the 4. ACE=READ_CONTROL (reading the DACL Entries and owner) right in the 4. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting) [/box:f5cfca55e0] [box:f5cfca55e0] chosen Datei=CROFAN$SourceFixstern2.exe last API-Fehler=1400 Return of GetVolumeInformation=1 last API-Fehler=1400 Laufwerksflags=1010000000011111111 grabbed is einschränkbar Ausgelesene Partition=NTFS Windowsversion=5.1 Privilegien go staid! Return of OpenProcessToken=1 last API-Fehler=1400 Return of LookupPrivilegeValue for SeSecurityPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Return of LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Reset the API-Fehlers becomes implemented Return of GetFileSecurity=0 last API-Fehler=122 Erforderliche length the Security Descriptor=188 Return of GetFileSecurity=1 last API-Fehler=0 Return of IsValidSecurityDescriptor=1 last API-Fehler=0 Return of GetSecurityDescriptorOwner=1 last API-Fehler=0 Return of IsValidSid for Besitzer=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=PROFANIUM owner the Datei=Programmierer String-SID the Besitzers=S-1-5-21-1820858989-1647371527-101265881-1005 Return of ConvertSidToStringSid=1 last API-Fehler=0 Return of LocalFree for String-SID=0 last API-Fehler=0 Return of GetSecurityDescriptorGroup=1 last API-Fehler=0 Return of IsValidSid for primäre Gruppe=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=PROFANIUM Primäre group the Datei=Kein Return of GetSecurityDescriptorDacl=1 last API-Fehler=0 Return of IsValidAcl for DACL=1 last API-Fehler=0 DACL is present! Return of GetAclInformation=1 last API-Fehler=0 ACEs in DACL=4 Size the 1.ACEs=24 ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 1. ACE related on SID=Administratoren 1. ACE related on Domainname=VORDEFINIERT Accessrechte the 1. ACEs=$1F01FF right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 2.ACEs=20 ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 2. ACE related on SID=SYSTEM 2. ACE related on Domainname=NT-AUTORITÄT Accessrechte the 2. ACEs=$1F01FF right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 3.ACEs=36 ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 3. ACE related on SID=Programmierer 3. ACE related on Domainname=PROFANIUM Accessrechte the 3. ACEs=$1F01FF right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 4.ACEs=24 ACE type the 4.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 4. ACE related on SID=Benutzer 4. ACE related on Domainname=VORDEFINIERT Accessrechte the 4. ACEs=$1200A9 right in the 4. ACE=FILE_READ_DATA (allows Data from one File To reading) right in the 4. ACE=FILE_READ_EA (allows erweiterte Attibute To reading) right in the 4. ACE=FILE_EXECUTE (allows a File to execute) right in the 4. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) right in the 4. ACE=READ_CONTROL (reading the DACL Entries and owner) right in the 4. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting) Return of GetSecurityDescriptorSacl=1 last API-Fehler=0 Return of IsValidAcl for SACL=0 last API-Fehler=1336 SACL isn't present! Return of CloseHandle=1 last API-Fehler=1336 [/box:f5cfca55e0] MfG Michael Wodrich |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 05/07/05 ▲ |
| |
| | | Jepp.
[box:9b80470e9f]chosen Datei=Cokumente and EinstellungenPackard BellDesktop1.mp3 last API-Fehler=0 Return of GetVolumeInformation=1 last API-Fehler=0 Laufwerksflags=1010000000011111111 grabbed is einschränkbar Ausgelesene Partition=NTFS Windowsversion=5.1 Privilegien go staid! Return of OpenProcessToken=1 last API-Fehler=0 Return of LookupPrivilegeValue for SeSecurityPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Return of LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Reset the API-Fehlers becomes implemented Return of GetFileSecurity=0 last API-Fehler=122 Erforderliche length the Security Descriptor=164 Return of GetFileSecurity=1 last API-Fehler=0 Return of IsValidSecurityDescriptor=1 last API-Fehler=0 Return of GetSecurityDescriptorOwner=1 last API-Fehler=0 Return of IsValidSid for Besitzer=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=C4 owner the Datei=Packard Bell String-SID the Besitzers=S-1-5-21-789336058-1343024091-854245398-1004 Return of ConvertSidToStringSid=1 last API-Fehler=0 Return of LocalFree for String-SID=0 last API-Fehler=0 Return of GetSecurityDescriptorGroup=1 last API-Fehler=0 Return of IsValidSid for primäre Gruppe=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=C4 Primäre group the Datei=Kein Return of GetSecurityDescriptorDacl=1 last API-Fehler=0 Return of IsValidAcl for DACL=1 last API-Fehler=0 DACL is present! Return of GetAclInformation=1 last API-Fehler=0 ACEs in DACL=3 Size the 1.ACEs=36 ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 1. ACE related on SID=Packard Bell 1. ACE related on Domainname=C4 Accessrechte the 1. ACEs=$1F01FF right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 2.ACEs=20 ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 2. ACE related on SID=SYSTEM 2. ACE related on Domainname=NT-AUTORITÄT Accessrechte the 2. ACEs=$1F01FF right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 3.ACEs=24 ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 3. ACE related on SID=Administratoren 3. ACE related on Domainname=VORDEFINIERT Accessrechte the 3. ACEs=$1F01FF right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff) Return of GetSecurityDescriptorSacl=1 last API-Fehler=0 Return of IsValidAcl for SACL=0 last API-Fehler=1336 SACL isn't present! Return of CloseHandle=1 last API-Fehler=1336[/box:9b80470e9f] |
| | | | |
| | | Hello people...
does me sorrow, but I need Files with a SACL. No the of you tested Files has a SACL. One SACL monitors Zugriffe on The File and these can then transcribed go. Please please times a SACL give away... |
| | | | |
| | Michael Wodrich | I fürchte, there versteh I only railway-station... |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 05/07/05 ▲ |
| |
| | | Have immo no File with vergebenen SACLs. there should I me z.B. first of somebody by MSN one File send let - msn vergibt automatically SACLs.
sit strain on nem Home - there existing such Mgl. ldr. not.
salvo. |
| | | | |
| | CB | Hello Andreas, have now time versuchsweise with following File any rights except Vollzugriff on Verweigern staid: [box:67f8a8161e]chosen Datei=DROFAN#FORUM#iviewcapture_date_03_03_2005_time_23_10_27.jpg last API-Fehler=0 Return of GetVolumeInformation=1 last API-Fehler=0 Laufwerksflags=1110000000011111111 grabbed is einschränkbar Ausgelesene Partition=NTFS Windowsversion=5.1 Privilegien go staid! Return of OpenProcessToken=1 last API-Fehler=0 Return of LookupPrivilegeValue for SeSecurityPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Return of LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Reset the API-Fehlers becomes implemented Return of GetFileSecurity=0 last API-Fehler=122 Erforderliche length the Security Descriptor=124 Return of GetFileSecurity=1 last API-Fehler=0 Return of IsValidSecurityDescriptor=1 last API-Fehler=0 Return of GetSecurityDescriptorOwner=1 last API-Fehler=0 Return of IsValidSid for Besitzer=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=MMC3 owner the Datei=CB String-SID the Besitzers=S-1-5-21-1417001333-1004336348-682003330-1003 Return of ConvertSidToStringSid=1 last API-Fehler=0 Return of LocalFree for String-SID=0 last API-Fehler=0 Return of GetSecurityDescriptorGroup=1 last API-Fehler=0 Return of IsValidSid for primäre Gruppe=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=MMC3 Primäre group the Datei=Kein Return of GetSecurityDescriptorDacl=1 last API-Fehler=0 Return of IsValidAcl for DACL=1 last API-Fehler=0 DACL is present! Return of GetAclInformation=1 last API-Fehler=0 ACEs in DACL=2 Size the 1.ACEs=20 ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 1. ACE related on SID=Jeder 1. ACE related on Domainname= Accessrechte the 1. ACEs=$301BF right in the 1. ACE=FILE_READ_DATA (allows Data from one File To reading) right in the 1. ACE=FILE_WRITE_DATA (allows data To Scheiben) right in the 1. ACE=FILE_APPEND_DATA (allows data anzuhängen) right in the 1. ACE=FILE_READ_EA (allows erweiterte Attibute To reading) right in the 1. ACE=FILE_WRITE_EA (allows erweiterte attributes To write) right in the 1. ACE=FILE_EXECUTE (allows a File to execute) right in the 1. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) right in the 1. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute) right in the 1. ACE=READ_CONTROL (reading the DACL Entries and owner) right in the 1. ACE=_DELETE (File delete) Size the 2.ACEs=20 ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 2. ACE related on SID=Jeder 2. ACE related on Domainname= Accessrechte the 2. ACEs=$1F01FF right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff) Return of GetSecurityDescriptorSacl=1 last API-Fehler=0 Return of IsValidAcl for SACL=0 last API-Fehler=1336 SACL isn't present! Return of CloseHandle=1 last API-Fehler=0[/box:67f8a8161e] and thereafter Vollzugriff verweigern (I habs probiert - let not More open, neither copy etc.): [box:67f8a8161e]chosen Datei=DROFAN#FORUM#iviewcapture_date_03_03_2005_time_23_10_27.jpg last API-Fehler=0 Return of GetVolumeInformation=1 last API-Fehler=0 Laufwerksflags=1110000000011111111 grabbed is einschränkbar Ausgelesene Partition=NTFS Windowsversion=5.1 Privilegien go staid! Return of OpenProcessToken=1 last API-Fehler=0 Return of LookupPrivilegeValue for SeSecurityPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Return of LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Reset the API-Fehlers becomes implemented Return of GetFileSecurity=0 last API-Fehler=122 Erforderliche length the Security Descriptor=124 Return of GetFileSecurity=1 last API-Fehler=0 Return of IsValidSecurityDescriptor=1 last API-Fehler=0 Return of GetSecurityDescriptorOwner=1 last API-Fehler=0 Return of IsValidSid for Besitzer=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=MMC3 owner the Datei=CB String-SID the Besitzers=S-1-5-21-1417001333-1004336348-682003330-1003 Return of ConvertSidToStringSid=1 last API-Fehler=0 Return of LocalFree for String-SID=0 last API-Fehler=0 Return of GetSecurityDescriptorGroup=1 last API-Fehler=0 Return of IsValidSid for primäre Gruppe=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=MMC3 Primäre group the Datei=Kein Return of GetSecurityDescriptorDacl=1 last API-Fehler=0 Return of IsValidAcl for DACL=1 last API-Fehler=0 DACL is present! Return of GetAclInformation=1 last API-Fehler=0 ACEs in DACL=2 Size the 1.ACEs=20 ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 1. ACE related on SID=Jeder 1. ACE related on Domainname= Accessrechte the 1. ACEs=$F01FF right in the 1. ACE=FILE_READ_DATA (allows Data from one File To reading) right in the 1. ACE=FILE_WRITE_DATA (allows data To Scheiben) right in the 1. ACE=FILE_APPEND_DATA (allows data anzuhängen) right in the 1. ACE=FILE_READ_EA (allows erweiterte Attibute To reading) right in the 1. ACE=FILE_WRITE_EA (allows erweiterte attributes To write) right in the 1. ACE=FILE_EXECUTE (allows a File to execute) right in the 1. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) right in the 1. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute) right in the 1. ACE=WRITE_DAC (Change the DACL Entries) right in the 1. ACE=READ_CONTROL (reading the DACL Entries and owner) right in the 1. ACE=File_Delete _Child (allows a Unterordner To delete - for Files no weight) right in the 1. ACE=WRITE_OWNER (proprietor Change) right in the 1. ACE=_DELETE (File delete) Size the 2.ACEs=20 ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 2. ACE related on SID=Jeder 2. ACE related on Domainname= Accessrechte the 2. ACEs=$1F01FF right in the 2. ACE=FILE_ALL_ACCESS (Vollzugriff) Return of GetSecurityDescriptorSacl=1 last API-Fehler=0 Return of IsValidAcl for SACL=0 last API-Fehler=1336 SACL isn't present! Return of CloseHandle=1 last API-Fehler=0[/box:67f8a8161e] helps you the moreover? Christian |
| | | | |
| | | Hello IF...
Zumindestens under windows2000 go SACLs not only automatically give away. About whom windows Explorer can you with Rechtsklick on a File its properties Show and change let. there find itself too The Sicherheitseinstellungen. something hideaway (Button extended) find You then too whom ACL (Überwachung). here time my Results with over the Explorer begot SACL. [box:404d413cad] chosen Datei=H:TestTest 2.doc last API-Fehler=0 Return of GetVolumeInformation=1 last API-Fehler=0 Laufwerksflags=1110000000011111111 grabbed is einschränkbar Ausgelesene Partition=NTFS Windowsversion=5.0 Privilegien go staid! Return of OpenProcessToken=1 last API-Fehler=0 Return of LookupPrivilegeValue for SeSecurityPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Return of LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Reset the API-Fehlers becomes implemented Return of GetFileSecurity=0 last API-Fehler=122 Erforderliche length the Security Descriptor=212 Return of GetFileSecurity=1 last API-Fehler=0 Return of IsValidSecurityDescriptor=1 last API-Fehler=0 Return of GetSecurityDescriptorOwner=1 last API-Fehler=0 Return of IsValidSid for Besitzer=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=VORDEFINIERT owner the Datei=Administratoren String-SID the Besitzers=S-1-5-32-544 Return of ConvertSidToStringSid=1 last API-Fehler=0 Return of LocalFree for String-SID=0 last API-Fehler=0 Return of GetSecurityDescriptorGroup=1 last API-Fehler=0 Return of IsValidSid for primäre Gruppe=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=ANDREAS-n4WTRUA Primäre group the Datei=Kein Return of GetSecurityDescriptorDacl=1 last API-Fehler=0 Return of IsValidAcl for DACL=1 last API-Fehler=0 DACL is present! Return of GetAclInformation=1 last API-Fehler=0 ACEs in DACL=4 Size the 1.ACEs=24 ACE type the 1.ACEs=ACCESS_DENIED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 1. ACE related on SID=Hauptbenutzer 1. ACE related on Domainname=VORDEFINIERT Accessrechte the 1. ACEs=$200A9 right in the 1. ACE=FILE_READ_DATA (allows Data from one File To reading) right in the 1. ACE=FILE_READ_EA (allows erweiterte Attibute To reading) right in the 1. ACE=FILE_EXECUTE (allows a File to execute) right in the 1. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) right in the 1. ACE=READ_CONTROL (reading the DACL Entries and owner) Size the 2.ACEs=24 ACE type the 2.ACEs=ACCESS_DENIED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 2. ACE related on SID=Hauptbenutzer 2. ACE related on Domainname=VORDEFINIERT Accessrechte the 2. ACEs=$F00E9 right in the 2. ACE=FILE_READ_DATA (allows Data from one File To reading) right in the 2. ACE=FILE_READ_EA (allows erweiterte Attibute To reading) right in the 2. ACE=FILE_EXECUTE (allows a File to execute) right in the 2. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) right in the 2. ACE=WRITE_DAC (Change the DACL Entries) right in the 2. ACE=READ_CONTROL (reading the DACL Entries and owner) right in the 2. ACE=File_Delete _Child (allows a Unterordner To delete - for Files no weight) right in the 2. ACE=WRITE_OWNER (proprietor Change) right in the 2. ACE=_DELETE (File delete) Size the 3.ACEs=24 ACE type the 3.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 3. ACE related on SID=Administratoren 3. ACE related on Domainname=VORDEFINIERT Accessrechte the 3. ACEs=$1F01FF right in the 3. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 4.ACEs=20 ACE type the 4.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 4. ACE related on SID=Jeder 4. ACE related on Domainname= Accessrechte the 4. ACEs=$120089 right in the 4. ACE=FILE_READ_DATA (allows Data from one File To reading) right in the 4. ACE=FILE_READ_EA (allows erweiterte Attibute To reading) right in the 4. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) right in the 4. ACE=READ_CONTROL (reading the DACL Entries and owner) right in the 4. ACE=SYNCHRONIZE (allows one FileHandle on one Complitition I/O To Waiting) Return of GetSecurityDescriptorSacl=1 last API-Fehler=0 Return of IsValidAcl for SACL=1 last API-Fehler=0 SACL is present! Return of GetAclInformation=1 last API-Fehler=0 ACEs in SACL=2 Size the 1.ACEs=20 ACE type the 1.ACEs=SYSTEM_AUDIT_ACE_TYPE 1.ACE draw erfolgreiche Zugriffe on. Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 1. ACE related on SID=Jeder 1. ACE related on Domainname= Accessrechte the 1. ACEs=$A2 right in the 1. ACE=FILE_WRITE_DATA (allows data To Scheiben) right in the 1. ACE=FILE_EXECUTE (allows a File to execute) right in the 1. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) Size the 2.ACEs=20 ACE type the 2.ACEs=SYSTEM_AUDIT_ACE_TYPE 2.ACE draw fehlgeschlagene Zugriffe on. Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 2. ACE related on SID=Jeder 2. ACE related on Domainname= Accessrechte the 2. ACEs=$1 right in the 2. ACE=FILE_READ_DATA (allows Data from one File To reading) Return of CloseHandle=1 last API-Fehler=0 [/box:404d413cad] |
| | | | |
| | CB | Hello Andreas! in the Xp ists not integrally so How in 2000. For this had to I The Überwachung for whole PC on - single File reicht not! - look you times the Screenshots on [box:93a741abd4]chosen Datei=DROFAN#FORUM#SACL-Test.doc last API-Fehler=0 Return of GetVolumeInformation=1 last API-Fehler=0 Laufwerksflags=1110000000011111111 grabbed is einschränkbar Ausgelesene Partition=NTFS Windowsversion=5.1 Privilegien go staid! Return of OpenProcessToken=1 last API-Fehler=0 Return of LookupPrivilegeValue for SeSecurityPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Return of LookupPrivilegeValue fur SeTakeOwnershipPrivilege=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented last API-Error to CopyMemory=0 Return of AdjustTokenPrivileges=1 last API-Fehler=0 Reset the API-Fehlers becomes implemented Return of GetFileSecurity=0 last API-Fehler=122 Erforderliche length the Security Descriptor=188 Return of GetFileSecurity=1 last API-Fehler=0 Return of IsValidSecurityDescriptor=1 last API-Fehler=0 Return of GetSecurityDescriptorOwner=1 last API-Fehler=0 Return of IsValidSid for Besitzer=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=MMC3 owner the Datei=CB String-SID the Besitzers=S-1-5-21-1417001333-1004336348-682003330-1003 Return of ConvertSidToStringSid=1 last API-Fehler=0 Return of LocalFree for String-SID=0 last API-Fehler=0 Return of GetSecurityDescriptorGroup=1 last API-Fehler=0 Return of IsValidSid for primäre Gruppe=1 last API-Fehler=0 Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented Domainname=MMC3 Primäre group the Datei=Kein Return of GetSecurityDescriptorDacl=1 last API-Fehler=0 Return of IsValidAcl for DACL=1 last API-Fehler=0 DACL is present! Return of GetAclInformation=1 last API-Fehler=0 ACEs in DACL=2 Size the 1.ACEs=20 ACE type the 1.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 1. ACE related on SID=Jeder 1. ACE related on Domainname= Accessrechte the 1. ACEs=$1F01FF right in the 1. ACE=FILE_ALL_ACCESS (Vollzugriff) Size the 2.ACEs=20 ACE type the 2.ACEs=ACCESS_ALLOWED_ACE_TYPE Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 2. ACE related on SID=Jeder 2. ACE related on Domainname= Accessrechte the 2. ACEs=$10000000 right in the 2. ACE=GENERIC_ALL Return of GetSecurityDescriptorSacl=1 last API-Fehler=0 Return of IsValidAcl for SACL=1 last API-Fehler=0 SACL is present! Return of GetAclInformation=1 last API-Fehler=0 ACEs in SACL=2 Size the 1.ACEs=36 ACE type the 1.ACEs=SYSTEM_AUDIT_ACE_TYPE 1.ACE draw erfolgreiche Zugriffe on. Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 1. ACE related on SID=CB 1. ACE related on Domainname=MMC3 Accessrechte the 1. ACEs=$F01FF right in the 1. ACE=FILE_READ_DATA (allows Data from one File To reading) right in the 1. ACE=FILE_WRITE_DATA (allows data To Scheiben) right in the 1. ACE=FILE_APPEND_DATA (allows data anzuhängen) right in the 1. ACE=FILE_READ_EA (allows erweiterte Attibute To reading) right in the 1. ACE=FILE_WRITE_EA (allows erweiterte attributes To write) right in the 1. ACE=FILE_EXECUTE (allows a File to execute) right in the 1. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) right in the 1. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute) right in the 1. ACE=WRITE_DAC (Change the DACL Entries) right in the 1. ACE=READ_CONTROL (reading the DACL Entries and owner) right in the 1. ACE=File_Delete _Child (allows a Unterordner To delete - for Files no weight) right in the 1. ACE=WRITE_OWNER (proprietor Change) right in the 1. ACE=_DELETE (File delete) Size the 2.ACEs=20 ACE type the 2.ACEs=SYSTEM_AUDIT_ACE_TYPE 2.ACE draw erfolgreiche Zugriffe on. Return of LookupAccountSid=1 last API-Fehler=997 Reset the API-Fehlers becomes implemented 2. ACE related on SID=Jeder 2. ACE related on Domainname= Accessrechte the 2. ACEs=$F01FF right in the 2. ACE=FILE_READ_DATA (allows Data from one File To reading) right in the 2. ACE=FILE_WRITE_DATA (allows data To Scheiben) right in the 2. ACE=FILE_APPEND_DATA (allows data anzuhängen) right in the 2. ACE=FILE_READ_EA (allows erweiterte Attibute To reading) right in the 2. ACE=FILE_WRITE_EA (allows erweiterte attributes To write) right in the 2. ACE=FILE_EXECUTE (allows a File to execute) right in the 2. ACE=FILE_READ_ATTRIBUTES (reading the Fileattribute) right in the 2. ACE=FILE_WRITE_ATTRIBUTES (Change the Fileattribute) right in the 2. ACE=WRITE_DAC (Change the DACL Entries) right in the 2. ACE=READ_CONTROL (reading the DACL Entries and owner) right in the 2. ACE=File_Delete _Child (allows a Unterordner To delete - for Files no weight) right in the 2. ACE=WRITE_OWNER (proprietor Change) right in the 2. ACE=_DELETE (File delete) Return of CloseHandle=1 last API-Fehler=0[/box:93a741abd4] the ought to now but fit - or? Christian |
| | | | |
| | | Hello Christian...
wonderful! very so!!! the Reading the DACLs shining now means too To functions. with the settle be so did i already something moreover.
The Size of a special ACE depends from the Size the encompassed SIDs ex.
One SID shining always at least 8 Bytes (one LUID) big To his. the stature one SIDs might itself right simply with LookupAccountName detect let. so slow Better get going what...
i'll first probably the sizes all encompassed ACEs to determine must. first then can I whom new ACL dimensionieren and initialisieren => is a Heidenarbeit!
The Proc becomes then so looks, that one as Parameter among other things indicate must, whether The already vorhandenen ACEs receive stay or deleted go should. new rights could so simply be installed. |
| | | | |
| | CB | nice, super! should I your letztes File NT too testing or on The next Version Waiting?
Christian |
| | | | |
|
AnswerThemeninformationenthis Topic has 6 subscriber: |