Einzelnen Beitrag anzeigen

hathor
(Gast)

n/a Beiträge
 
#4

AW: BuildExplicitAccessWithName - LIMIT_CONTROL: Wie rückgängig machen

  Alt 1. Apr 2015, 17:45
Ich habe nun einen Code, mit dem der Zugriff wieder möglich ist.

Wer selbst experimentieren möchte, sollte UNBEDINGT eine leere HDD oder eine mit nutzlosen Daten nehmen!

Delphi-Quellcode:
procedure TForm1.Button8Click(Sender: TObject); //FULL_CONTROL for Everyone
var
  TmpString: String;
  pSD : Pointer;
  NewDacl, OldDacl: PACl;
  EA: array [0..5] of EXPLICIT_ACCESS;
  ret : Cardinal;
begin
  TmpString := 'G:\';
  GetNamedSecurityInfo(PChar(TmpString), SE_FILE_OBJECT,
                DACL_SECURITY_INFORMATION, nil, nil, @OldDacl, nil, pSD);
  BuildExplicitAccessWithName(@EA, PChar('Everyone'), GENERIC_ALL,
                GRANT_ACCESS, SUB_CONTAINERS_AND_OBJECTS_INHERIT);
  SetEntriesInAcl(1, @EA, OldDacl, NewDacl);
  ret:= SetNamedSecurityInfo(PChar(TmpString), SE_FILE_OBJECT,
                DACL_SECURITY_INFORMATION, nil, nil, NewDacl, nil);
  if ret= ERROR_SUCCESS then
  ShowMessage('Bei diesem Objekt wurden keine Objekttypen zugeordnet.'+#13#10+
            'Achtung: Dies ist ein mögliches Sicherheitsrisiko, weil jeder,'+#13#10+
            'der Zugriff auf dieses Objekt hat, dieses besitzen kann.'+#13#10+
            'Der Besitzer dieses Objekts sollte so bald wie möglich'+#13#10+
            'Berechtigungen zuordnen.');
end;
Miniaturansicht angehängter Grafiken
alidvr_eigenschaften.jpg  

Geändert von hathor ( 1. Apr 2015 um 18:11 Uhr)
  Mit Zitat antworten Zitat