AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte JEDI Windows Security Code Library
Thema durchsuchen
Ansicht
Themen-Optionen

JEDI Windows Security Code Library

Ein Thema von Dezipaitor · begonnen am 6. Nov 2007 · letzter Beitrag vom 15. Apr 2008
Antwort Antwort
Seite 2 von 4     12 34      
Dezipaitor
Registriert seit: 14. Apr 2003
Hallo Delphianer,

dies ist die erste öffentliche Bekanntmachung für etwas das ich mittlerweile fast ein Jahr entwickle. Zuvor hatte ich bereits schoneinmal eine Teil-Veröffentlichung gemacht. Im Laufe der Zeit hat sich einiges getan, und wenn ich auch noch nicht Releasestatus erreicht habe, ist die Bibliothek mittlerweile sehr nützlich. Zudem habe ich mich nach einigem Gerangel entschieden sie als OpenSource freizugeben. Dies geschieht aus der Hoffnung, dass Andere dazukommen und Verbesserungen beitragen oder sogar weitere Klassen hinzufügen. Die Veröffentlichung geschieht jedoch mit der ausdrücklichen Bitte die Bibliothek als ganzes zu verwenden und sie nicht als Selbstbedienungsladen zu sehen.

Was ist JEDI Windows API (JWA)?
Die JWA ist eine Bibliothek, die versucht soviele original Windows Header Dateien (C-Header) wie möglich nach Delphi zu konvertieren.

Was ist JEDI Windows Security Code Library (JWSCL) ?
Die JWSCL ist eine reine Klassenbibliothek, die die Programmierung mit der Windows API (in C geschrieben) vereinfachen soll.
Darunter fallen derzeit folgende Konstrukte:
*Erkennung der Windows Version
*Token
**Impersonation (Personifizierung)
**Benutzerlogin
*SID
*Access Control List
*Security Descriptor (Sicherheitsdeskriptor)
**Owner, Group, DACL, SACL
*WindowStation
*Desktop
*LSA (Teile)
*Rights mapping
*Gesicherte Objekte z.B. Dateien, Registry (+Vererbung), aber auch alle anderen Handles
*Credentials (Login Dialog)
*Verschlüsselung (MS Crypt API)
*Known SIDs
*Privilegien
*Security Dialogs (Sicherheitsdialog, wie man ihn bei der Dateisicherheit des Explorers sieht)
*Terminal Sessions
*Unicode + Ansicode
*Vista Elevation
*Vista Integrity Level

In Entwicklung:
*Terminal Server (u.a. Session shadowing) (40%)
*Secure Private Objects (Sicherung von benutzerdefinierten Strukturen mit Sicherheitsdeskriptor + opt. Vererbung) (20%)
*Group Policy (0%)
*Active Directory (0%)
*und weitere

Die JWSCL gibt es derzeit im BETA Status über Subversion (Versionsverwaltung) von SourceForge. Sie ist unter der GPL (wenn auch noch nicht in der Dokumentation erwähnt) oder MPL als OpenSource freigegeben.
Zusätzlich gibt es noch eine erweiterte Version der JEDI API Lib, die in demselben Subversion Repository liegt. Sie findet Verwendung in der JWSCL.

(Anonymer Zugriff)
Die URL ist über ein SVN Client, wie Tortoise SVN zu verwenden.

edit:Auf allgemeine Anfrage ist nun der Download des aktuellen Subversion Repository rev#30 von SF.net möglich. Das Archiv hat denselben Inhalt, wie ein Checkout über SVN.


Die JWSCL verwendet die neue JEDI API Lib (JWA). Dazu muss die JWA als Paket kompiliert werden.
1. Öffne die Projektgruppe im Ordner jwaapi\trunk\Packages, was zu deiner Delphiversion passt. Oder wenn nicht vorhanden, verwende eine ältere Version.
2. Kompiliere alle Pakete. Die DCU Dateien werden in einem Ordner "Bin" gespeichert. Dieser ist nochmals in vier weitere Unterordner aufgeteilt, die die verschiedenen Versionsarten (Debug/Release, Dynamic/Static) repräsentieren.
Die Dateien "JwaWindows.dcu" und "JwaVista.dcu" sind dann die entscheidenden Teile.
3. Kopiere dir den Pfad-Text von einem dieser vier Ordner. Ich empfehle für die Entwicklung Dynamic\Debug. Dieser Pfad wird der Suchpfad für JediAPI DCU Dateien in deinen neuen Projekten.

Diese Vorgehensweite ist empfehlenswert im Gegensatz zu der direkten Einbindung der Quelldateien. In diesem Fall müsste bei jeder Projekterzeugung alle Jedi API Lib Dateien erneut kompiliert werden - das dauert.

Die Verwendung der JWSCL ist dann einfach. Man muss nur den Suchpfad des eigenen Projekts noch durch den Pfad zur Quelle "jwscl\trunk\source" erweitern.


So, das wars für die Vorbereitung.
Einige Beispiele sind bereits in den Ordnern. Der Rest ist durch Ausprobieren erfahrbar

Zum BETA Status:
BETA Status bedeutet für die JWSCL, dass es noch viele unentdeckte Fehler gibt. Daher ist es nicht ratsam blindlings die Bibliothek in wichtigen Projekten einzusetzen. Ich verbiete es jedoch nicht! Ich werde mich jedoch bemühen, Fehler so gut wie möglich zu korrigieren. Ich rufe aber inständig andere Entwickler auf mich bei der Arbeit zu unterstützen. Tester suche ich daher weniger als Helfer.

Zur Kritik:
Ich nehme nur konstruktive Kritik an.

Zur Kommunikation:
Eine neue JEDI API Webseite ist im Aufbau. Ein Blog wird auf Assarbads Server entstehen, der auch Benutzerkommentare zulässt.
Wer Fragen hat, kann mich daher ersteinmal hier im Forum erreichen.

Zur Hilfe:
Wie schon geschrieben, suche ich eher Mitentwickler als reine Tester.
Ich suche aber auch Leute, die Beispiele für die JWSCL schreiben. Zudem können Artikel/Beispiele im neuen Blog abgelegt werden.

Zu meiner Hilfe:
Ich kann leider nur in Sachen JWSCL oder JWA helfen. Direkte Hilfe zur Unterstützung in Programmierung für Windows Sicherheit kann ich nicht geben. Bitte dazu das Forum benutzen.


So ich hoffe nun, dass Programmierung in Windows Sicherheit etwas einfacher wird....
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
 
Dezipaitor

 
Delphi 7 Professional
 
#11
  Alt 8. Nov 2007, 23:18
Wenn ihr wirklich Softwareentwickler sein wollt, dann solltet ihr eine Versionsverwaltung, wie SVN zu schätzen wissen Ich kann aus eigener Erfahrung nur sagen: ein Segen!!
Christian
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#12
  Alt 9. Nov 2007, 06:29
Zitat von Dezipaitor:
Wenn ihr wirklich Softwareentwickler sein wollt, dann solltet ihr eine Versionsverwaltung, wie SVN zu schätzen wissen Ich kann aus eigener Erfahrung nur sagen: ein Segen!!
[OT] Ich nutze den DevProjektmanager, von Gaijin. Der Reicht mir vollkommen aus. Dazu habe ich noch die History von Delphi und das reicht mir vollkommen. [OT]
Rolf Warnecke
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#13
  Alt 9. Nov 2007, 06:33
Aber es verhindert nicht einen SVN-Clent zu installieren
http://tortoisesvn.tigris.org/ klinkt sich direkt in das Kontextmenü des Explorers ein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

 
Delphi 2006 Architect
 
#14
  Alt 9. Nov 2007, 06:43
Zitat von mkinzler:
Aber es verhindert nicht einen SVN-Clent zu installieren
http://tortoisesvn.tigris.org/ klinkt sich direkt in das Kontextmenü des Explorers ein.
Nuten wir auch im Team... Klappt alles im Prinzip wie am Schnuerchen!
  Mit Zitat antworten Zitat
Olli
 
#15
  Alt 9. Nov 2007, 11:21
Man kann nur hoffen, daß die Delphi-Community das zu schätzen weiß oder zu schätzen lernt. Da steckt eine Menge Arbeit drin und ich würde es - weil dieses Schlagwort ja so gern benutzt wird - als Bibliothek mit einer Qualität vergleichbar zu kommerziellen Produkten bezeichnen. Mit dem kleinen Unterschied, daß es das in dieser Form für Delphi bisher auch von kommerziellen Anbietern nicht gab.

Gute Arbeit, Chris!

@SVN-Scheue: wie wäre es sich einfach mal mit SVN (welches übrigens seit einiger Zeit als offizieller Nachfolger von CVS gilt) auseinanderzusetzen und sich die Zeit zu nehmen es aus dem SVN-Repository auszuchecken? Oder laßt es mich anders formulieren: es sollte nur recht und billig sein, daß ihr auch was tut um an die Bibliothek zu gelangen, wenn ihr euren Aufwand mal mit dem vergleicht, den Chris hatte um die Bibliothek auf die Beine zu stellen.
  Mit Zitat antworten Zitat
Dezipaitor

 
Delphi 7 Professional
 
#16
  Alt 9. Nov 2007, 18:37
Jetzt will ich aber keine Fragen mehr bzgl direkter Programmierung mit Security API sehen
Christian
  Mit Zitat antworten Zitat
Dezipaitor

 
Delphi 7 Professional
 
#17
  Alt 10. Nov 2007, 17:11
Wir haben ein Projekt auf Basis der JWSCL in Entwicklung, das es ermöglicht unter Windows XP den aktuellen Benutzer Administratorrechte für das Starten eines Programmes zu verleihen.
Es ist so ähnlich, wie unter Vista.

Der Vorteil dabei ist, dass man nicht Administrator sein muss, d.h. ein Programm unter dessem Profil starten braucht. Profildaten und Pfade bleiben erhalten. Das Programm wird zwar mit Adminrechten gestartet, jedoch werden z.B. Installationsdaten ins Profil und Registry des Benutzers eingetragen.
Manche Programme schaffen es ja immer noch nicht, z.B. Startmenüeinträge für alle User statt des aktuellen Benutzers zu erstellen. Man findet dann den Startmenüeintrag beim aktuellen Nutzer nicht, sondern muss sich erstmal als Administrator einloggen.

Das ganze funktioniert auch mit Terminal Sessions - also mehreren gleichzeitig eingeloggten Benutzern. Wir testen derzeit noch mit Vista. So soll es möglich sein, auch ohne UAC, wie unter XP zu arbeiten.
Christian
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#18
  Alt 29. Nov 2007, 17:36
Hi ... Ich habe ein ziemlich... Naja pikantes Problem
Ich will die JwaWindows.pas kompilieren, und TD-E sagt:
[Pascal Fataler Fehler] jwaWindows.pas(259): F1026 Datei nicht gefunden: 'C:\[...]\jwapi\trunk\Win32API\JwaWinType.pas'
Also Flucks Dateiname kopiert und mit TD-E laden wollen:
Zitat:
---------------------------
whoami - Turbo Delphi - JwaWindows
---------------------------
Datei C:\[...]\jwapi\trunk\Win32API\JwaWinType.pas kann nicht geöffnet werden. Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.
---------------------------
OK
---------------------------
So... Was soll ich nun machen?
Wenn ich TD-E neustarte kann ich die Datei wieder öffnen... Also wieder komplieren, aber denkste... Wäre ja mal was neues das etwas geht:
Datei nicht gefunden .......

Was mache ich/macht TD-E falsch?

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Dezipaitor

 
Delphi 7 Professional
 
#19
  Alt 29. Nov 2007, 17:40
Das Problem habe ich auch. Es ist ein ganz merkwürdiger Fehler von TD - z.b. in D7 tritt er nicht auf.
Bis jetzt habe ich es lösen können, indem ich TD geschlossen habe und die Dateien woandershin kopiert habe (nicht verschieben) - am besten auf eine andere Partition.
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Remko
Remko

 
RAD-Studio 2010 Arc
 
#20
  Alt 29. Nov 2007, 18:06
I noticed this issue too on BDS2006. Closing and restarting often helps (you can also try to close the handle eg with Process Explorer). You should report this in Quality Central.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz