Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#23

Re: Tastatur/Maus-Hook: Internet Explorer stürzt wegen DLL a

  Alt 6. Dez 2008, 00:22
Security Descriptors sind nicht mein Spezialgebiet (speziell die Vista-spezifischen Integrity Labels), aber ich versuche trotzdem, deine Fragen nach besten Wissen zu beantworten.
Zitat:
Auserdem verstehe ich nicht den Zusammenhang zwischen dem Security-Descriptor und dem Integrity-Level, das ich auf "niedrig" setzen möchte.
In einem Security Descriptor sind ALLE sicherheitsrelevanten Einstellungen verzeichnet, also u.A. der Besitzer, die Discretionary Access Control List und eben auch das Integrity Label.

Vereinfacht könnte dein Code auf einem vor-Vista-System so aussehen:
Delphi-Quellcode:
var Attrs: PSecurityAttributes;
    Desc: TJwSecurityDescriptor;
begin
  Desc := TJwSecurityDescriptor.Create;
  try
{Verleiht allen Benutzern alle Rechte - also auch Schreibrechte! Wenn du sie auf Lesezugriff beschränken willst, musst du die DACL bis auf einen Eintrag lehren, der allen Benutzern Lesezugriff verleiht.}
    Desc.DACL := nil;

    Attrs := Desc.Create_SA; //API-Struktur erstellen
    try
      hMapping := CreateFileMapping(..., Attrs, ...);
    finally
      TJwSecurityDescriptor.Free_SA(Attrs);
    end;
  finally
    Desc.Free;
  end;
end;
Um zusätzlich das Integrity Label zu setzen, musst du die SACL ändern. Das geht über die Methode TJwSAccessControlList.SetMandatoryLabel.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat