Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Protect your Lisp

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Protect your Lisp (2425 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 05. Feb. 2013 13:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo!

Mich würde mal interessieren, wie Profis ihre hart erkämpften Früchte schützen und vor evtl. "Raub"kopieren sichern.
Mein Hilfe brachte ein code der mir Serial Nummer ausliest und vergleicht, desweiteren habe ich eine Zeiteinschränkung eingebaut.
Es funktioniert zwar, (gibt es ein aber ?)

Code:

;;;VxGetAcadLicenseInfos - Returns the license information's of the current...

;
; -- Function VxGetAcadLicenseInfos
; Returns the license information's of the current AutoCAD version
; like ProductName, Release, SerialNumber, Language, etc.
; Copyright:
;  ©2004 MENZI ENGINEERING GmbH, Switzerland
; Arguments [Type]:
;  None
; Return [Type]:
;  > License information's '((Info1 . Value1)...) [STR]
; Notes:
;  - The number of information's depends on the AutoCAD version

(defun VxGetAcadLicenseInfos ( / KeyLst RegPth RetVal)
(setq RegPth (strcat "HKEY_LOCAL_MACHINE\\" (vlax-product-key))
      KeyLst (vl-registry-descendents RegPth T)
)
(foreach memb KeyLst
  (if (not (eq memb ""))
  (setq RetVal (cons
                (cons memb (vl-registry-read RegPth memb))
                RetVal
                )
  )
  )
)
(reverse RetVal)
)

(defun date (/ date_str year month)
  (setq date_str (rtos (getvar "cdate") 2 4)
year (substr date_str 1 4)
month (substr date_str 5 2)
;;; day (substr date_str 7 2)
;;; hour (substr date_str 10 2)
;;; minu (substr date_str 12 2)
datum (strcat year month day)
)
  datum
  )


(defun c:test ()
  (if (and (= (cdr (assoc "SerialNumber" (VXGETACADLICENSEINFOS)))  "392-29393067")
          (<= (atof (date)) (atof "20130206"))
          )
    (load (strcat DCL "diroTool"))
    (princ "\nKeine Berechtigung !!!")
    )
  (princ)
  )


------------------
Gruss Dirk


http://cadplayerlounge.blogspot.se/

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jupa
Ehrenmitglied V.I.P. h.c.
Ruheständler


Sehen Sie sich das Profil von jupa an!   Senden Sie eine Private Message an jupa  Schreiben Sie einen Gästebucheintrag für jupa

Beiträge: 6050
Registriert: 16.09.2004

WINDOWS Vista Ultimate SP2 (64bit), NVIDIA Geforce 9600M GT, AutoCAD 2013.

erstellt am: 05. Feb. 2013 13:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Thomas Krüger (alias cadmium) hat 'ne Menge Tools veröffentlicht, die nach gewisser Testzeit nicht mehr nutzbar sind. Am besten ihn mal kontaktieren.

Jürgen

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 05. Feb. 2013 20:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,

Zeitbeschränkung?

Wenn der Benutzer die Zeit an seinem PC zurückstellt (das habe ich schon öfters gesehen), nützt die Zeitbeschränkung nicht viel.
Allerdings hat der Benutzer etwas Arbeit.
Damit der Benutzer etwas mehr Arbeit hat, kannst Du die Zeit auch nach unten beschränken. Dann muss er erst herausfinden wie weit er seine Zeit am PC zurück stellen darf.

Auf jeden Fall hat er mehr Mühe.
Noch mehr Mühe bekommt er, wenn das Programm z.B. aus zwei Dateien besteht. Bei der einen ist die Zeitbeschänkung eingebaut und eine andere Funktion läuft nicht mehr.

Wenn alles aber kompliziert wird, musst Du aufpassen, was Du wo eingebaut hast, sonst stellst Du die selbst ein Bein.

Es kommt auch darauf an, wie wertvoll ein Tool für Dich ist.
Die ganzen Umstände und die Pflege ist nicht wenig Arbeit, dann soll doch jemand ein Tool unberechtigt nutzen, bevor ich mit viel Arbeit mit dem Schutz mache.

Gruß
Theodor


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dorfy
Mitglied
Double-Dipl.-Ing. Bleistiftanspitzer


Sehen Sie sich das Profil von Dorfy an!   Senden Sie eine Private Message an Dorfy  Schreiben Sie einen Gästebucheintrag für Dorfy

Beiträge: 900
Registriert: 21.07.2006

AutoCad2007, ProE, HiCad

erstellt am: 05. Feb. 2013 21:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Du kannst den Computernamen auslesen, die Autocad-Serial, die Version, das aktuelle Datum...
Mit Schreibrechten kannst du iwo ne Datei mit nen Zahlencode ablegen
Ziffern und Buchstaben kannst du beliebig umrechnen...
Nun lass dir ne wilde Formel einfallen, verknüpfe sie mit dem Datum, lass dir ne Mail mit dem "Eingangscode" schicken, und sende den "Antwortcode" zurück, zerlege alles in 100 Dateien und compiliere diese zu einer vlx
oder nimm eine andere Sprache für den Schlüssel...

So - nun bist du gefragt   

------------------
Mfg Heiko

Elefantenjagd in Afrika
"... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..."
-Lots of irritating superfluous parentheses!-

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Niggemann
Mitglied



Sehen Sie sich das Profil von Niggemann an!   Senden Sie eine Private Message an Niggemann  Schreiben Sie einen Gästebucheintrag für Niggemann

Beiträge: 159
Registriert: 31.10.2003

Win 98 Se, ACAD 2004, XP Prof, ACAD 2004 und ACAD 2010

erstellt am: 05. Feb. 2013 23:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
ich benutze seit ein paar Jahren den Zugriff auf die Autocad-Serial, war nurmal so zum testen. Klappt super, bei einem Nutzer habe ich auch mal die Verion mit abgefragt, ist bis heute kein Problem. Wird der Rechner getauscht und das vorhandene ACAD wieder installiert kann der Nutzer das Programm weiter nutzen, will er es mit einer anderen Autocad-Serial benutzen kommt ein "allert" mit dem Hinweis das das Programm nicht für seine ACAD-Version zugelassen ist mit den Hinweis auf meinem Namen mit Telefonnummer. Da alles kompeliert ist kann man so schnell nicht den Eintrag ändern. Dieses System ist mit wenig Zeitaufwand zu pflegen.
Gruß
Niggemann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 06. Feb. 2013 08:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
die Frage taucht hier ja mal öfters auf, habe in 2007 schon einmal was dazu geschrieben:
http://ww3.cad.de/foren/ubb/Forum145/HTML/002192.shtml#000002

Als Ergänzung noch dazu:
Folgende Variante ist nur zu empfehlen, wenn es sich um einen sehr kleinen Nutzerkreis handelt, weil dabei jeder Kunde eine eigens kompilierte VLX/DES-Datei bekommt, in dem seine Firmendaten hinterlegt sind. Das wird dem Kunden dann auch mitgeteilt, und sobald er das Programm dann weitergibt gehen auch seine Daten weiter.

Fazit: wenn man nicht gerade 1000 Lizenzen pro Progrämchen verkauft ist der gute Kontakt zum Kunden der beste Schutz.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Böschungsschraffen Youtube

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 06. Feb. 2013 12:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke für Eure interessanten Beiträge, war mir echt hilfreich, zumal die Info mit der MACaddress mir neu war. Die Frage ist geklärt, wie ich Serialnummer, user ect abrufen kann. Sicherlich arbeiten alle erstellten Lisp programm compiliert im fas-format.

Was ich will, das die Lisp-files nur unter Berücksichtigung der Sicherheitabfrage laufen, d.h für mich also, ich muss in jeden Lisp code die Sicherheitsabfrage einbauen.

Mein Vorgang wär jetzt ein load O.g. Funktion zur Serialnummerabfrage, in der auch die berechtigten Serialnummern gespeichert sind.
Anschl. in dem Lisp code fragen ob die Abfrage okay ist und damit ein Start der Funktion ausgelöst.

Gibt es da vielleicht einen anderen vielleicht besseren Weg ?

------------------
Gruss Dirk


http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 08. Feb. 2013 12:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Geschickter wäre vielleicht einen Sammelbehälter mit allen "geliebten" Tools aufzubauen, der wiederum nur über die Sicherheitabfrage ge-öffnet -startet werden kann.

Ein interessante Punkt wäre, wie baut man eine Funktion auf, die nur von einem bestimmten Laufwerk (Suchpfad) gestartet werden kann ?

------------------
Gruss Dirk


http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 08. Feb. 2013 14:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
Zitat:
Ein interessante Punkt wäre, wie baut man eine Funktion auf, die nur von einem bestimmten Laufwerk (Suchpfad) gestartet werden kann ?

Wo die Funktion gestartet wird muss egal sein (kann ja auch von vielen Rechnern gleichzeitig aus einem Netzwerkverzeichnis geladen werden).
Vielmehr mußt Du dafür sorgen, daß auf dem lokalen Rechner eine eindeutige Kennung exisitert, z.B. in der Registry.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

Böschungsschraffen Youtube

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 22. Mrz. 2013 07:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ein Nachtrag, eigentlich eine ganz simple Methode sein Programm zu schützen ist, eine PIN einzubauen
Folgende einfache Zeile kann man in sein startup einbauen
(setenv "PIN" "1234567")

Bevor ein Program gestartet werden soll baut man einfach die Abfrage mit

Code:

(if (= (getenv "PIN") "1234567")
  (defun c:
  Program
  )
  (princ "\nKeine Lizens ")
(setenv "PIN" "")

------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Peter2
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 05. Jul. 2013 17:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Aus dem obigen Informationspaket bleiben für mich dennoch zwei Fragen:

a) Netzwerk- statt Einzellizenzen
Der Umgang mit der Einzellizenz scheint klar, aber wenn man 30 Anwender alle mit der gleichen Netzwerklizenz hat und der Firma nur eine Lizenz anbietet?

b) PIN
Der Vorschlag mit der PIN ist mir nicht klar - wo ist hier der Schutz? Jeder Kunde kann sein Programm vielfach einsetzen oder weiterverkaufen / - schenken - den PIN gibt er immer mit ...

Peter

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 06. Jul. 2013 14:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Peter, es sollte ein simples Beispiel sein, du kannst aber mit getenv wesentlich mehr abfragen, siehe hier
Ich habe das Rad mal ein wenig weiter gesponnen. Was hälst du davon?

Code:
;| den RegistryVerweis solltest du
  mit einem exe.Aufruf schreiben damit nur du weist
  wo die Abfrage steht.
  Zu Testzwecken kannst du mal diese Zeile eingeben
  (vl-registry-write "HKEY_CURRENT_USER\\Test" "" "123456789")
|;


(defun license (date computerName RegistryPIN)
  (if (<= date "20130707")
    (if (= "XXX" computerName)
      (if (= RegistryPIN "123456789")
"der test ist okay"
(princ "\n PIN ist falsch ")
)
      (princ "\n Auf dem Rechner nicht zugelassen !")
      )
    (princ "\n Zeit abgelaufen")
    )
  )


(defun protection (/)
  (if (= "der test ist okay"
(license
  (rtos (getvar "cdate") 2 0)
  (getenv "ComputerName")
  (vl-registry-read "HKEY_CURRENT_USER\\Test")
  )
)
    "ADSDJNKLULKAIIIDNKLKQQ1239899"
    (princ "\n keine Zulassung!!! ")
    )
  )

(defun c:meinCode ()
  (if (= "ADSDJNKLULKAIIIDNKLKQQ1239899" (protection))
    (entsel "\n Wähle ein Objekt ")
    (alert "I want my cash first, by writer")
    )
  )


------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 06. Jul. 2013 19:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Oder hier etwas gekürzt. Du legst eine license.fas - mit der Licenseabfrage an, dann eine Schlüssel.fas, wo dein eigens angelegter key drinsteht und dann rufst du die zwei compilierten Daten in deinem Code auf.
Was meint ihr zu dem Beispiel

Code:

; DIE DATEI FÜR DIE LIZENS ABFRAGE
; License.fas
  (
   (lambda (date computerName RegistryPIN)
    (if (and (<= date "20130707")
     (>= date "20120707")
    )
      (if (= "XXX" computerName)
(if (= RegistryPIN "123456789")
  "ADSDJNKLULKAIIIDNKLKQQ1239899"
  (princ "\n PIN ist falsch ")
  )
(princ "\n Auf dem Rechner nicht zugelassen !")
)
      (princ "\n Zeit abgelaufen")
      )
    )
    (rtos (getvar "cdate") 2 0)
    (getenv "ComputerName")
    (vl-registry-read "HKEY_CURRENT_USER\\Test")
    )

; DIE DATEI FÜR DEN SCHLÜSSEL
; key.fas
"ADSDJNKLULKAIIIDNKLKQQ1239899"


; DER BEISPIEL CODE
(defun c:meinCode ()
  (if (= (load "H:\\license.fas") (load "H:\\key.fas"))
    (entsel "\n Wähle ein Objekt ")
    (alert "I want my cash first, by writer")
    )
  (princ)
  )


------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

[Diese Nachricht wurde von cadplayer am 06. Jul. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Peter2
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 07. Jul. 2013 00:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Wenn ich es recht verstehe, so bindet diese Methode zwar das Programm absolut an die Lizenz, aber es schützt nicht vor unerlaubter Vervielfältigung und Weitergabe. Einfach Programm und die beiden Daten kopieren - beim Kollegen installieren - fertig.

Peter

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 07. Jul. 2013 20:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ganz so einfach ist es nicht zu kopieren, da einmal der Computername und der Registryeintrag übereinstimmen muss. Optimaler wäre es natürlich, wenn der code selbst einen Schlüssel erzeugt, der das Programm freischaltet.
Ich stelle mir das folgendermassen vor.
Man schreibt in die LicensFunktion eine Formel, die den Schlüssel einliest und wenn die Auwertung korrekt ist, dann läuft das Programm, dann geht´s auch nicht mehr frei zu kopieren (und wie gesagt, der Registryeintrag behindert ebenfalls eigennütziges kopieren). Jetzt bist du gefragt

------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 09. Jul. 2013 12:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

So könnte vielleicht eine Verschlüsselung aussehen.
Die Funktion kann nur an dem Tag aktiviert werden, an dem der Aktivierungscode bestellt wurde. D.h., wenn man am nächsten Tag gleichen Activierungscode verwendet, funktioniert er nicht mehr.
Es gilt jetzt vielleicht noch, die Funktionen sinnvoll aufzuteilen oder zu kürzen. Vom Prinzip funktioniert es aber.

Code:
; Funktion verschlüsselt das Passwort mit dem aktuellem Datum
(defun encrypt (str / p)
    (setq p (mapcar '+ (vl-string->list str) '(1 8 14 19  3 6 17 36 25 4  1  9 62)))
    (princ (strcat "\n Das verschlüsselte Passwort lautet: " (vl-list->string p)))
    (princ)
    )

; Funktion entschlüsselt das Passwort
(defun decrypt (str / p)
    (setq p (vl-list->string (mapcar '- (vl-string->list str) '(1 8 14 19  3 6 17 36 25 4  1  9 62))))
    )

; Funktion zur Auswahl eines Passwortes
; Gibt das verschlüsselte Passwort zurück
(defun c:KuPaWort (/ key)
    (if (and (setq password (getstring "\n Gib ein vierstelliges Passwort ein! "))
            (setq key (strcat password (rtos (getvar "cdate") 2 0)))
            )
        (encrypt key)
        )
    (princ)
    )

; Funtion aktiviert das Passwort mit dem Verschlüsselten und schreibt es
; als Vermerk in die Registrydatei und in eine PasswortDatei
(defun c:ActivKuPaWort (/ fname file)
        (if (eq (decrypt (getstring "\n Gib ein Passwort ein, um das Programm zu aktivieren! "))
                (strcat (if (null password)
                            (progn
                                (princ "\n Der Code ist nicht mehr zugelassen \n")
                                (exit)
                                )
                            password
                            )
                        (rtos (getvar "cdate") 2 0)
                )
            )
            (progn
                (princ "\n Das Programm ist aktiviert! ")
                (vl-registry-write "HKEY_CURRENT_USER\\Test" "" password) ; muss je nach Windowsversion angepasst werden
               
                (setq fname (strcat "C:\\Temp\\Test\\password" ".txt")) ; das Verzeichnis muss existieren
                (if (setq file (open fname "w"))
                    (write-line password file)
                    )
                (close file)
                )
            (princ "\n Das Passwort ist falsch! ")
            )
    (setq password nil)
    (princ)
    )
       
; zum Aufruf des Programms wird geprüft nach dem Registryeintrag
(defun c:foo ( / fname file)
  (if (= (if (setq fname (strcat "C:\\Temp\\Test\\password" ".txt"))
              (progn (if (null (setq file (open fname "r")))
                        (progn
                            (princ "\n kein Passwort vorhanden")
                            (alert "\n keine Berechtigung ")
                            )
                        (read-line file)
                        )
                  )
          )
          (vl-registry-read "HKEY_CURRENT_USER\\Test")
          (if (= file nil)
              (princ "\n Programm kann nicht ausgeführt werden")
              (alert " Programm wird ausgeführt ")
              )
          )
      (alert "\n keine Berechtigung ")
      )
    (princ)
    )
       
   


------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Peter2
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 09. Jul. 2013 13:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cadplayer 10 Unities + Antwort hilfreich

Danke für die intensive Arbeit. Ich bin derzeit gröber andersweitig beschäftigt, daher kann ich mich erst später damit befassen.

Peter

------------------
Für jedes Problem gibt es eine einfache Lösung.
Die ist aber meistens falsch. ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 09. Jul. 2013 14:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Dann bis später einmal
foo funktion läuft so vielleicht genauer...

Code:
(defun c:foo ( / fname file)
  (if (= (if (setq fname (strcat "C:\\Temp\\Test\\password" ".txt"))
              (if (not (setq file (open fname "r")))
                  (princ "\n kein Passwort vorhanden ")
                  (read-line file)
              )
          )

          (if (not (vl-registry-read "HKEY_CURRENT_USER\\Test"))
              (princ "\n kein PIN vorhanden")
              (vl-registry-read "HKEY_CURRENT_USER\\Test")
              )
      )
      (alert " Programm wird ausgeführt ")
      (alert "\n keine Berechtigung ")
      )
  (princ)
  )


------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 13. Jul. 2013 11:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Auch mal zum Testen, ein Passwort in die Registry mit dotNET reinzuschreiben. Aus "csharpcorner" geholt - man compiliert die Zeilen in eine windowsConsole.exe und startet die exe einmal und das Passwort wird an die hkey_loacal_machine adress geschrieben.

Code:
using System;
using System.Collections.Generic;
using Microsoft.Win32;
using System.Linq;
using System.Text;

namespace TheWindowsRegistryCSharp
{
    class Program
    {
        static void Main(string[] args)
        {

            // Create a new key under HKEY_LOCAL_MACHINE\Software as MCBInc
            RegistryKey key = Registry.LocalMachine.OpenSubKey("Software", true);
            // Add one more sub key
            RegistryKey newkey = key.CreateSubKey("MCBInc");
            // Set value of sub key
            newkey.SetValue("Dick Last", "cadplayerXXX");
        }
    }
}


Meine Frage wäre, hat von Euch schon mal einer versucht eine OnlineAbfrage zu vollziehen? D.h. man fordert als registrierter Nutzer online ein Passwort an und bekommt ein "einmalig verwendbares" Passwort zum freischalten.

------------------
Gruss Dirk

http://cadplayerlounge.blogspot.se

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz