Autor Thema: Notes DB Zeitbegrenzung  (Gelesen 2986 mal)

Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Notes DB Zeitbegrenzung
« am: 08.05.03 - 22:28:07 »
Hallo,
kennt jemand einem Möglichkeit, wie man DB mit einer Zeitbeschränkung "im offenen Zustand" weitergeben kann.
Es müsste ein nichtsichbarer integrierter Agent in der DB enthalten sein, der nach Ablauf der Testphase durch Aktivierung (Lizenznummer) deaktiviert wird !

Danke
Bert

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Notes DB Zeitbegrenzung
« Antwort #1 am: 09.05.03 - 05:42:38 »
Ich habe mal so etwas in der Art gemacht:

Da ging es um einen Import von Kalenderdokumenten auf den Mailfiles der User in eine gemeinsame DB.

Hier habe ich folgenden Mechanismus verwendet. Den Code für den Agenten habe ich in eine "agentencode.lss" ausgelagert und mit Include in den Agenten eingebunden. Damit war der Agent versteckt , die DB ansonsten aber offen.

Zusätzlich war noch eine lic Datei erforderlich. Diese Datei enthielt den Namen des Lizenznehmers, das Ablaufdatum und eine Checksumme aus beiden Angaben.
Damit war eine Manipulation weitestgehend ausgeschlossen.

yoo, das wars

eknori
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Notestime

  • Senior Mitglied
  • ****
  • Beiträge: 358
  • Geschlecht: Männlich
  • ... time for new ways
    • HoCaS
Re:Notes DB Zeitbegrenzung
« Antwort #2 am: 09.05.03 - 09:52:54 »
Hi eknori,

kannst Du das bitte mal ein bischen eingehender erläutern. Ich hätt' da auch Interesse dran.

Bernd
Admin & Designer,
6 Server (4xAIX, 2xLinux),
850 Clients

Offline robert

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Geschlecht: Männlich
  • Wissen ist macht, ich weiß nix, macht nix !!
    • Rob's Homepage
Re:Notes DB Zeitbegrenzung
« Antwort #3 am: 09.05.03 - 10:30:37 »
Hallo Gemeinde,

ich hab da auch gerade noch was zu gefunden, vielleicht hilft das ja auch weiter.  ::)

Um zu vermeiden, dass der Kopierschutz bereits bei der Implementation durch Öffnen der zu schützenden Datenbank aktiviert wird (Datenbank merkt sich das Systemdatum und die Systemzeit), empfielt sich folgende Vorgehensweise:

Erstellen einer neuen Instanz (NSF) der zu schützenden Datenbank mittels Menübefehl "Datei | Datenbank | Neu..." und Angabe der entsprechenden Schablone (ohne Kopieschutz)
Implementation des unten angegebenen LotusScript-Codes im Datenbank-Script dieser neuen NSF
Erstellen einer neuen Schablone (NTF) durch den Menübefehl "Datei | Datenbank | Neue Kopie..." durch Kopieren der NSF
In den Datenbankeigenschaften der NTF unter Gestaltung definieren, dass diese Datenbank eine Schablone ist und den entsprechenden Schablonennamen spezifizieren
Die Gestaltung der NSF ersetzen durch die Schablone NTF mittels Menübefehl "Datei | Datenbank | Gestaltung ersetzen...", Angabe der entsprechenden Schablone und der gesetzten Option "Gestaltung verstecken

Der Kopierschutz wird durch folgende Anweisungen im Datenbank-Script realisiert:

<--- begin of (Declarations) ------>
Declare Function NEMGetCurrentSubprogramWindow Lib "nnotesws.dll" () As Long
Declare Function NEMStopSubprogramWindow Lib "nnotesws.dll" (Byval hwnd As Long) As Integer
<----- end of (Declarations) ------>

<--- begin of Sub Postopen ----->
Sub Postopen(Source As Notesuidatabase)
   
   Dim w As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim titel As String
   Dim future As Variant
   
   Set db = Source.Database
   Set doc = db.GetProfileDocument("Verfall")  
   If Not (doc.HasItem("Verfall")) Then
      doc.Verfall = Cdat(Today + 90)
      Call doc.save(True,True)
      Set doc = db.GetProfileDocument("Verfall")
   End If
   titel = db.Title
   future = doc.GetItemValue("Verfall")
   
   If Cdat(future(0)) < Cdat(Today) Then
      Dim wHandle As Long
         ' Get window handle
      wHandle = NEMGetCurrentSubprogramWindow
          ' Close current window
      Call NEMStopSubprogramWindow(wHandle)
      Print "Benutzungszeitraum der DB < " + titel + " >  ist abgelaufen!!"
   End If
   
End Sub
<----- end of Sub Postopen ----->

Gruß

Robert
NT 4 SP6a
-25 Domino Server 5.03 bis 5.11
-1800 Notesclients

Offline Notestime

  • Senior Mitglied
  • ****
  • Beiträge: 358
  • Geschlecht: Männlich
  • ... time for new ways
    • HoCaS
Re:Notes DB Zeitbegrenzung
« Antwort #4 am: 09.05.03 - 11:25:36 »
jip, das ist ja schonmal super. jedoch sollte man noch die möglichkeit haben, die db nachträglich über einen lizenzkey freizuschalten.
Admin & Designer,
6 Server (4xAIX, 2xLinux),
850 Clients

Offline robert

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Geschlecht: Männlich
  • Wissen ist macht, ich weiß nix, macht nix !!
    • Rob's Homepage
Re:Notes DB Zeitbegrenzung
« Antwort #5 am: 09.05.03 - 11:32:34 »
Hi Notestime,

diese Ausführung war nur für Demo DB's gedacht.  ;D

Gruß

Robert
NT 4 SP6a
-25 Domino Server 5.03 bis 5.11
-1800 Notesclients

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Notes DB Zeitbegrenzung
« Antwort #6 am: 09.05.03 - 12:21:14 »
@robert:

bei deiner Methode hast du aber den großen Nachteil, daß du das

a:) nicht ohne neuinstallation nachträglich lizensieren kannst
b:) das design der DB verborgen ist und der "Käufer" z.B. keine eigenen Ansichten mehr anlegen kann.
c:) du nicht die Möglichkeit hast, z.B. auf Agentenebene einzelne "Funktionen" (Agenten) abhängig von den Angaben im Lizenzkey freizuschalten.

@Notestime:

ich suche meinen Kram mal durch ( am WE ) und poste ich das hier
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline robert

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Geschlecht: Männlich
  • Wissen ist macht, ich weiß nix, macht nix !!
    • Rob's Homepage
Re:Notes DB Zeitbegrenzung
« Antwort #7 am: 09.05.03 - 12:50:35 »
@Eknori

hab ja auch nur mal in meiner Knoff Hoff DB nachgesehen und das gefunden, hab ja nicht gesagt, das das die eierlegende Wollmilchsau ist ;D

Gruß

Robert

P.S. Ich geh jetzt erst mal 14 in Urlaub ;D ;D ;D ;D
NT 4 SP6a
-25 Domino Server 5.03 bis 5.11
-1800 Notesclients

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Notes DB Zeitbegrenzung
« Antwort #8 am: 09.05.03 - 12:52:31 »
habe die Basic gerade gefunden:

http://www.nsftools.com/tips/NotesTips.htm#lsencryption

da sind einige Methoden, die du brauchst, um die Informationen in einem Lizenzkey vor veränderungen zu schützen.

In deinem Agenten fragst du dann zunächst einmal ab, ob eine bestimmte Datei im Notes/NotesData verzeichnis vorhanden ist.
Ist das nicht der Fall, handelt es sich um eine "Evaluation" Copy.
Für diesen Fall springst du im Agenten an eine Stelle im Code, die nur bestimmte Funktionen zulässt.
Soweit der einfache Fall, der den Agenten lediglich in seinem Funktionsumfang begrenzt ( CrippleWare )

Da das aber heutzutage nicht mehr üblich ist (sein sollte), setzt du diese *.lic einfach voraus.
Im Vorfeld hast du per encryption ein Ablaufdatum in diese datei geschrieben.

Der Agebnt liest also die lic und decodiert das Datum; anschließend noch ein vergleich mit dem Systemdatum und der Agent weiß, ob er laufen darf oder eine meldung rausgeben soll, daß die Evaluierungsphase abgelaufen ist.

Kauft der Kunde nun die "Vollversion" brauchst du ihm nur noch eine neue *.lic zukommen zu lassen.

Beim Aufbau der *.lic mußt du dann ein bisschen deine Phantasie bemühen, damit man nicht auf den ersten Blick sieht, wo die informationen stehen ( z.B. irgendeinen String mit 200 Stellen erzeugen und dann das Ablaufdatum ab Position 154 einfügen und encrypten ) Dann weiß zwar der Agent, wo er suchen muß, aber nicht der Käufer.


Hoffe, das reicht dir erst einmal zum Starten.

eknori
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Notestime

  • Senior Mitglied
  • ****
  • Beiträge: 358
  • Geschlecht: Männlich
  • ... time for new ways
    • HoCaS
Re:Notes DB Zeitbegrenzung
« Antwort #9 am: 09.05.03 - 13:03:27 »
@eknori: danke, ich werd mir das mal reinziehen :)
Admin & Designer,
6 Server (4xAIX, 2xLinux),
850 Clients

Offline Bert

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re:Notes DB Zeitbegrenzung
« Antwort #10 am: 09.05.03 - 22:32:15 »
Danke euch erst mal für Eure Ideen !

Nur eines kann ich noch nicht nachvollziehen.
Wenn ich egal welchen script auch immer als datei "agentcode.lss" mit der DB zur Verfügung stelle, dann kann der Nutzer doch jeden Code knacken, bzw den Agent einfach ausschalten.
Gibt es auch eine Möglichkeit einen einzelnen Agenten und nicht das Design der ganzen DB zu verbergen ??

Gruß Bert

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Notes DB Zeitbegrenzung
« Antwort #11 am: 09.05.03 - 22:58:39 »
das mit dem Knacken ist klar, wenn das Design offen ist und man in den Debugging Modus geht. Das kann man verhindern, indem man ein Javamodul implementiert, das ähnlich dem included .lss Agent einmal kompiliert nicht mehr "sichtbar" ist. Dazu aber nicht mehr zu debuggen ist. Was da passiert bleibt mit Notesmethoden unsichtbar. Nämlich der Zugriff auf  "eknoris" .lic.

Das ist aber schon recht viel an Mühe, die der Kunde auf sich nimmt und es stellt sich die Frage, ob das nicht mit dem .lss Agent für 99% aller Kunden ausreichend ist.

Ausschalten würde ich so einen .lss Agent nicht, wenn da die Core Functions drin sind. Das sollte der Produzent entsprechend einplanen. Ohne .lss keine funktionsfähige Db mehr.
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz