Deutsch
Forum

API LsaOpenPolicy

 
Die API LsaOpenPolicy bietet die Grundlage für sehr interessante Möglichkeiten unter Profan im Adminbereich. Leider habe ich zu wenig Ahnung von der API und anderen Programmiersprachen und beiße mir an den Strukturen dieser Funktion im Augenblick die Zähne aus .
Ich möchte die Funktion auf ein lokales System anwenden um an das Policy-Handle zu kommen, das man für andere APIs des Securitybereichs benötigt.
Wer hat Lust, mir zur Seite zu stehen oder genug Ahnung, um mir weiter zu helfen?
Habe Profan² 7.5...
 
14.12.2004  
 



Gut das ich mich mit diesem Thema überhaupt nicht auskenne - gelobt sei mir da ein linux. *coolyeah*

Salve, iF
 
14.12.2004  
 



Hallo IF...

Schade eigentlich. Der Adminsektor bietet für Profan wesentlich bessere und interessantere Möglichkeiten als es die Entwicklung von Spielen tut. Da lassen sich mit Profan auf sehr einfache und einleuchtende Weise extrem interessante und sehr nützliche Dinge zaubern.

Ich beschäftige mich leider est mit der API seit ich in den Profanforen poste - ich zähle mich deshalb eher zu den Anfängern.
Für jemanden mit etwas mehr Erfahrung dürfte die 4-Parameterfunktion kein großes Problem darstellen - es geht ja eigentlich nur darum, ein Handle zu bekommen. Ich stolpere im Augenblick etwas über den ersten und zweiten Parameter (Ich glaube Unicode_String heißt das Untier, das mich plagt!?) => eigentlich fast leere Strukturen - doch wie groß? Was kann man da genau alles auf Null setzen???
 
14.12.2004  
 



Zeig doch einfach mal her - wenns dirnur darum geht kann ich sicherlich helfen.
 
14.12.2004  
 



Hallo IF...

Denke auch mal, daß du da helfen kannst.
Nachdem ich noch einen Hinweis im Netz auf einer C++ Seite gefunden habe, erhalte ich jetzt unter Windows2000 auch eine Zahl als Rückgabe.
Aber, frei nach Hamlett, hab ich das Handle oder hab ich es nicht, das ist hier die Frage...
KompilierenMarkierenSeparieren
DEF @LsaOpenPolicy(4) !"advapi32","LsaOpenPolicy"
DEF @LsaClose(1) !"advapi32","LsaClose"
Declare POLICY_Handle#,Attribut#,Policy_Handle&,UNICODE#
Declare Ergebnis&
DIM POLICY_Handle#,4
DIM Attribut#,(4+4+5+1+1)
DIM UNICODE#,5
CLS
Long Attribut#,0=15
Word Attribut#,8=1
Word Attribut#,10=1
WORD Unicode#,0=1
WORD Unicode#,2=1
STRING Unicode#,4=""
LET ERGEBNIS&=@LsaOpenPolicy(Unicode#,Attribut#,$80000000 | $20000000 | 16 | 2048,POLICY_Handle#)
LET Policy_Handle&=@LONG(POLICY_Handle#,0)
PRINT Policy_Handle&
LET ERGEBNIS&=@LsaClose(@long(POLICY_Handle#,0))
WAITINPUT
Dispose Attribut#
Dispose Unicode#
Dispose POLICY_Handle#
 
14.12.2004  
 




Michael
Dell
Hab mal folgendes aus der MSDN zusammengestellt, hoffe es is korrekt denn Testen konnt ichs nich (da Win98).

Hoffe es hilft:[quote:cb47d68b17]Struct LSA_UNICODE_STRING = Length#(2),MaximumLength#(2),Buffer& vor XProfan = Length%,MaximumLength%,Buffer&
Buffer = Pointer to a wide character string.
Note that the strings returned by the various LSA functions might not be null terminated.

Struct LSA_OBJECT_ATTRIBUTES = Length&,RootDirectory&,ObjectName&,Attributes&,SecurityDescriptor#(1),SecurityQualityOfService#(1)
ObjectName& = PLSA_UNICODE_STRING (=LSA_UNICODE_STRING)

LsaOpenPolicy- Struktur Start
Struct LsaOpenPolicy = PLSA_UNICODE_STRING&,PLSA_OBJECT_ATTRIBUTES&,DesiredAccess#(2),PolicyHandle&
PLSA_UNICODE_STRING& = LSA_UNICODE_STRING&,
PLSA_OBJECT_ATTRIBUTES& = LSA_OBJECT_ATTRIBUTES&

Parameters:

SystemName Pointer to an LSA_UNICODE_STRING structure that contains the name of the target system.
The name can have the form computer_name or \computer_name.
If this parameter is NULL, the function opens the Policy object on the local system.

ObjectAttributes Pointer to an LSA_OBJECT_ATTRIBUTES structure that specifies the connection attributes.
The structure members are not used; initialize them to NULL or zero.

DesiredAccess An ACCESS_MASK that specifies the requested access rights.
The function fails if the DACL of the target system does not allow the caller the requested access.
To determine the access rights that you need, see the documentation for the LSA functions with which you want to use the policy handle.

PolicyHandle [in, out] Pointer to an LSA_HANDLE variable that receives a handle to the Policy object.
When you no longer need this handle, pass it to the LsaClose function to close it.

Return Values
If the function succeeds, the function returns STATUS_SUCCESS.
If the function fails, it returns an NTSTATUS code. For more information, see LSA Policy Function Return Values.
You can use the LsaNtStatusToWinError function to convert the NTSTATUS code to a Windows error code.

Remarks
To administer the local security policy of a local or remote system, you must call the LsaOpenPolicy function to establish a session with that systems LSA subsystem. LsaOpenPolicy connects to the LSA of the target system and returns a handle to the Policy object of that system. You can use this handle in subsequent LSA function calls to administer the local security policy information of the target system.
LsaOpenPolicy- Struktur Ende

ACCESS_MASK ( =DesiredAccess#(2) )

Bits Meaning
0 through 15 Specific rights. Contains the access mask specific to the object type associated with the mask.
16 through 23 Standard rights. Contains the objects standard access rights.

24 Access system security (ACCESS_SYSTEM_SECURITY). It is used to indicate access to a system access control list (SACL). This type of access requires the calling process to have the SE_SECURITY_NAME (Manage auditing and security log) privilege. If this flag is set in the access mask of an audit access ACE (successful or unsuccessful access), the SACL access will be audited.
25 Maximum allowed (MAXIMUM_ALLOWED).
26 through 27 Reserved.
28 Generic all (GENERIC_ALL).
29 Generic execute (GENERIC_EXECUTE).
30 Generic write (GENERIC_WRITE).
31 Generic read (GENERIC_READ).

Standard rights bits, 16 to 23, contain the objects standard access rights and can be a combination of the following predefined flags.

Bit Flag Meaning
16 DELETE Delete access.
17 READ_CONTROL Read access to the owner, group, and discretionary access control list (DACL) of the security descriptor.
18 WRITE_DAC Write access to the DACL.
19 WRITE_OWNER Write access to owner.
20 SYNCHRONIZE Synchronize access.

The following constants represent the specific and standard access rights:

#define SPECIFIC_RIGHTS_ALL 0x0000FFFF
#define STANDARD_RIGHTS_REQUIRED 0x000F0000
#define STANDARD_RIGHTS_ALL 0x001F0000[/quote:cb47d68b17]
Gruß...
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
14.12.2004  
 



Hallo Michael...

DANKE! Werds so schnell wie möglich testen und mit meinen Sachen abgleichen!!
 
14.12.2004  
 



Hallo Michael...

JA!!!! DAS WARS!!! ICH HAB DAS HANDLE!!!!! Es flutsch, es funktioniert, ES KLAPPT ES GEHT!!!!!!! Da habe ich so viel Bahnhof verstanden, daß ich da erst nächstes Jahr durchgefunden hätte! ICH KANN DIR GAR NICHT SAGEN WIE ICH MICH FREUE!
Ist das schön, jetzt komme ich weiter...
 
14.12.2004  
 



Ja warum fragst Du mich denn dann nicht gleich.

Salve, iF :biggrin:
 
14.12.2004  
 




Michael
Dell
Prima, es geht doch nix über nen gelungenen Abend!

Hab grad noch mal in der MSDN nachgesehn und entdeckt das ich da vieleicht was falsch übersetzt haben könnte.

Die beiden Variablen SecurityDescriptor#(1) & SecurityQualityOfService#(1) in der Struktur
LSA_OBJECT_ATTRIBUTES werden als PVOID beschrieben also als Pointer, sollte mal was nicht funzen
versucht mal diese beiden Variablen als #(2) oder #(4) zu Deklarieren.

Gruß...
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
14.12.2004  
 



Hallo Michael...

Bis auf die ACCESS_MASK hat alles hingehauen, werds aber trotzdem mal mit dem Pointer versuchen. Habe jetzt die übersetzte Rückmeldung ERROR_SUCCESS statt Fehler 998.
Dieses Handle ist quasi der goldene Schlüssel zu den Sicherheitseinstellungen von Windows2000/XP! Ich kann nun reinsehen, umordnen und was rausnehmen - nochmals besten Dank!
 
15.12.2004  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.700 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

unbekannt (9x)
Michael Dell (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie