Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Rechte für Registry Key setzen (https://www.delphipraxis.net/90100-rechte-fuer-registry-key-setzen.html)

Carlo91 11. Apr 2007 16:33


Rechte für Registry Key setzen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi, ich habe gestern mal versucht ein kleines programm zu schreiben was dem eingeloggten benutzer die Rechte für einen Registry Key weg nimmt. So wie schon gesagt ich habe es versucht es hat auch eigendlich alles geklappt die registry hat aber immer wenn ich mir die Rechte für den Key angucken wollte einen Error ausgegeben(screenshot). Ich hoffe ihr könnt mir helfen und sagen was ich falsch gemacht habe bzw. wie ich es richtig mache!

MfG Carlo

Dezipaitor 11. Apr 2007 16:56

Re: Rechte für Registry Key setzen
 
ich schätze mal, dass die access control elements (ACE) durcheinander sind.

Zuerst müssen alle deny (positive) ACEs kommen, dann die direkt allow (positive) ACEs und dann die inherited allow (positve) ACEs.

1. Deny 1
2. Deny 2
3. Allow 1
4. Allow 2
5. Allow 3 inherited (OBJECT_INHERIT_ACE)

Carlo91 11. Apr 2007 17:09

Re: Rechte für Registry Key setzen
 
thx für die schnelle antwort!
Aber könntest du mal den code posten wie du es meinst, weil ich nicht wirklich weiss was ich da verändern soll/muss.

MfG Carlo

Dezipaitor 11. Apr 2007 18:10

Re: Rechte für Registry Key setzen
 
naja ich hab einfach den Quelltext von unitNTSecurity.pas geändert :

Zeile 95:
Delphi-Quellcode:
TAccessControlList = class
...
public
...
property ElementList : TObjectList read fElementList;
end;
(das geht auch mit Vererbung!)

Jetzt kannst du ganz einfach ein Deny ACE ganz nach oben in die Liste einfügen.

Delphi-Quellcode:
acl.ElementList.Insert(0,TAccessControlElement.Create(userName, aeAccessDenied, OBJECT_INHERIT_ACE or CONTAINER_INHERIT_ACE , FILE_ALL_ACCESS));
Das Problem bei der Reihenfolge Allow dann Deny ist, dass das System die ACL durchgeht und beim ersten Treffer (gleiche SID), abbricht. Daher müssen
Deny ACEs ganz oben stehen, weil diese ja Vorrang haben.

Carlo91 11. Apr 2007 18:21

Re: Rechte für Registry Key setzen
 
Danke Dezipaitor es geht :!: :!: :!:
:-D :-D :-D :-D :-D :-D :-D :-D

MfG Carlo

Dezipaitor 11. Apr 2007 18:40

Re: Rechte für Registry Key setzen
 
für die Allow ACEs kannste aber immernoch AddElement verwenden.

Weiß auch net warum das Hinzufügen garnicht verfügbar ist. Ich vermute, das ganze wurde einfach runterprogrammiert und daher vergessen. In meiner Security Bibilothek ist es dabe i :D

Du weißt allerdings schon, dass wenn du dem Besitzer des Schlüssels die Zugriffsrechte verweigerst, dann kann er diese sich immer wieder zurückgeben. Erst wenn der Besitzer geändert wird, kann man nicht mehr drauf zugreifen.

Machst du noch mehr mit Windows Sicherheit?

Carlo91 11. Apr 2007 18:45

Re: Rechte für Registry Key setzen
 
Also das mit dem rechten weiss ich! Wenn du dir mal den Source anguckst siehst du welchen Key ich die Rechte entziehe. ASProtct ist ein kopierschutz und mir ist durch zufall aufgefallen das er nicht mehr geht wenn er keine rechte für den key hat somit kann man das geschützte programm immer nutzen^^!

Und mit windows sicherheit mach ich sonicht wirklich viel ich programmiere immer das was ich brauch.

MfG Carlo

Dezipaitor 11. Apr 2007 19:06

Re: Rechte für Registry Key setzen
 
ASProtect ist ein Programm zum Schutz von Programmen:

http://www.aspack.com/asprotect.html

Carlo91 11. Apr 2007 19:07

Re: Rechte für Registry Key setzen
 
Ja mein ich ja :!:
Und ich umgeh ihn xD :!: :-D :!:

MfG Carlo


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz