Delphi-PRAXiS
Seite 7 von 7   « Erste     567   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi USB-Speicher identifizieren (https://www.delphipraxis.net/21676-usb-speicher-identifizieren.html)

I.A 6. Mär 2009 08:17

Re: USB-Speicher identifizieren
 
Hallo!

Entschuldigt bitte, ich nehme alle meine Fragen zurück. Habe soeben noch mal hir geguckt und den Beitrag von Robert Marquardt entdeckt. Den hatte ich voriges Mal schlichtweg übersehen.


Es gibt also doch Sticks ohne Seriennummer. Dann wäre wenigstens bei gleichen Sicks des gleichen Herstellers der String nicht mehr eindeutig. Für ein kommerzielles Programm mit Lizenzschlüssel per USB muss man daher sicherheitshalber eine VendorID kaufen.

GoTo0815 6. Mär 2009 11:15

Re: USB-Speicher identifizieren
 
Hallo,

nein nicht zwangsweise.
Mein Vorschlag wäre USB Sticks von einem Lieferanten kaufen der Deine gewünschte Seriennummern setzt. (Ich kenne da ganz zufällig einen :-) )
Das hat dann nichts mit der Vendor oder ProductID zu tun.
Im gleichen Zuge kann beim Setzen, auch gleich die zu schüztende Software mit aufgespielt werden.
Veredelung (also Loganbringung), Infos des Sticks setzen (Serial etc), Partitionierung (wenn gewünscht) und Datenaufspielung in einem Abwasch.

Die Seriennummer kann dann von der Software geprüft werden.
Um eine größere Sicherheit zu erlangen ist es manchmal nötig, dass Ganze so zu implementieren, dass die Software selbst (z.B. nach einem Update) die Seriennummer des Sticks ändert. So können eventuell vorherige gehackte Lizenzen ungültig gemacht werden.
Dazu braucht man dann aber einen direkten Zugriff auf z.B. die von manchen Herstellern gelieferte API (DLL / SDK meist schwer und nur kommerziell zu bekommen). Und das funktioniert auch nur bei Software die beim Ändern der Seriennummer auch Adminrechte besitzt. (Was ja bei einem Update aber oft sowieso der Fall sein muss.)

Solch ein Aufwand hängt natürlich immer mit dem Wert der zu schützenden Software und den Mengen der Verbreitung dieser ab.

Wer also kommerzielles Interesse an so etwas hat, darf mich gern ansprechen, aber ansonsten will ich hier keine zu große Eigenwerbung machen. Ich schätze diese Forum sehr und bin sehr froh, dass diese Forum so konsequent und hilfreich ist.

Gruß

Hendrik

neo4a 6. Mär 2009 12:21

Re: USB-Speicher identifizieren
 
Ich habe mich erfolgreich mit Sticks beschäftigt, die mit der U3-Funktion ausgestattet sind (z.B. von Sandisk). Auch wenn man die U3-Fähigkeit (zusätzliches virtuelles CD-Laufwerk mit Autorun und Autostart-Menü inkl. spezieller Setup-Funktion) von den Sticks entfernt, erlaubt der Zugriff mit der frei verfüfbaren U3DAPI.dll den Zugriff auf Settings und spezielle Speicherbereiche, die für den "normalen" Benutzer nicht sicht- und kopierbar sind. In Szenarien mit geringeren Sicherheitsanforderung eine Alternative zu USB-Dongles, die dazu auch eine hohe Benutzerakzeptanz bietet (Startmenü, portable Applikation, PC- unabhängiges Speichern). Naja, und die Kosten sind auch überschaubar.

Für mich tut es das bis hin zu WinVista, allerdings ist nicht ganz sicher, wie es damit weitergeht. Derzeit sind die Sticks noch vorhanden und kaufbar, allerdings besagen (Marketing-) Gerüchte seit ca. 1 Jahr, dass Sandisk mit Microsoft an einer Folgelösung arbeitet, die bereits seit 4.Quartal 2008 verfügbar ist ;)

--
Andreas

GoTo0815 6. Mär 2009 14:52

Re: USB-Speicher identifizieren
 
Hallo,

ich stimme Andreas (neo4a) in den meisten Punkten zu.
Allerdings denke ich, dass die Funktionalitäten und Settingsmöglichkeiten auf USB Sticks bleiben werden. Ob das nun U3 heißt oder...

Wir haben damals von unserem Haupt-Controllerlieferanten eine eigene API.DLL erhalten auf deren Basis wir unsere Delphi Komponenten entwickelt haben, da der Umgang mit den DLL's selbst ja nicht immer der einfachste ist. :-)
Das Funktioniert dann zwar immer nur mit den Controllern eines bestimmten Controllerherstellers, aber da die Controller sowieso alle im LowBudget Bereich liegen und eher die Speicherpreise relevant sind, ist es auch nicht weiter schlimm, wenn man sich auf einen Controllerhersteller beschränkt.

Andreas: Wenn Du Dich mit der U3DApi auseinandergesetzt hast, weißt DU sicher, ob die Zugriffe dort auch unter NONAdmin funktionieren oder nicht. Würde mich wirklich brennend interessieren.

Gruß

Hendrik

neo4a 6. Mär 2009 17:47

Re: USB-Speicher identifizieren
 
@Hendrik,

in der Tat funktioniert das auch in eingeschränkten Benutzerumgebungen. In der Developer-Area von u3.com gibt es neben der API-Dokumentation im Downloadbereich auch eine Umsetzung der Header für Delphi, die mir als Vorlage diente.

Es gibt zwar beim gegenwärtigen Stand der Entwicklung (ich setze das jetzt seit 2007 ein) seltene Probleme mit der Adressierung, wenn z.B. an einem USB-Hub mit weiteren U3-Medien gearbeitet wird. Dafür habe ich einen treiberlosen Kopierschutz, der für U3-Sticks beliebiger Hersteller funktioniert. Ich kann die Fernfreischaltung diverser Dongle-Lieferanten (Aladdin, Wibu) bieten, indem ich z.B. eine lic-Datei liefere, die nur mit einem bestimmten Stick *einmalig* funktioniert in Abhängigkeit von deren Seriennr. und bereits hinterlegten Parametern. Dieser les- und beschreibbare Bereich ist auf dem Stick nur via API erreichbar. Man kann den Stick löschen, formatieren oder kopieren; diese Infos bleiben erhalten. Man arbeitet damit wie mit der Registry und insgesamt viel einfacher als z.B. mit den arg limitierten Bereich der Aladdin-Hasp, die ich zuvor lange benutzt habe.

Insgesamt ist es eine (für mich) recht bequeme und vor allem preiswerte (2GB ab ca. 6€) Alternative mit o.g. Vorteilen auch für den Benutzer.

--
Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:44 Uhr.
Seite 7 von 7   « Erste     567   

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