AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Prinzipfrage Lizensierungs-Mechanismus
Thema durchsuchen
Ansicht
Themen-Optionen

Prinzipfrage Lizensierungs-Mechanismus

Ein Thema von steffen_d · begonnen am 1. Okt 2008 · letzter Beitrag vom 2. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
steffen_d

Registriert seit: 28. Nov 2004
Ort: Leipzig
27 Beiträge
 
#1

Prinzipfrage Lizensierungs-Mechanismus

  Alt 1. Okt 2008, 17:37
Hallo,

ich mache mir gerade Gedanken über einen Lizensierungs-Mechanismus für mein Programm.

Ich habe da an Folgendes gedacht:

In mein Programm baue ich eine Signatur, sprich einen langen String-Schlüssel fest ein.
Aus diesem und dem Namen des Kunden generiere ich einen Hash, z.B. mit MD5.
Namen und Hash packe ich in eine Lizenzdatei, die ich dann an den Kunden schicke.

Mein Programm liest dann aus der Lizenzdatei den Namen des Kunden, generiert daraus und aus dem fest eingebauten Schlüssel wieder den Hash und vergleicht ihn mit dem Hash in der Datei.

Stimmen die Hashs überein, dann ist die Lizenz gültig.

So ähnlich müsste es doch bei anderen Programmen, die man lizensieren muss, auch funktionieren?
Sollte ich das so umsetzen?

Danke und Gruß
Steffen
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Prinzipfrage Lizensierungs-Mechanismus

  Alt 1. Okt 2008, 17:49
Hi,

vom Prinzip her ja. Ich würde jedoch dieses Verfahren benutzen.

Wobei der 'öffentliche Schlüssel' im Programm enthalten ist. Weiterhin verwenden einige Systeme die MAC-Adresse der
vorhandenen Netzwerkkarte und kodieren die Freischaltung von Zusatzmodulen.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#3

Re: Prinzipfrage Lizensierungs-Mechanismus

  Alt 1. Okt 2008, 17:55
Zitat:
Stimmen die Hashs überein
Das wird wohl eine If-Abfrage sein. Sowas kann man in der Regel umgehen, indem man ein einzelnes Byte der Anwendung ändert. Also würde ich lassen. Der Aufwand lohnt sich nicht, denn der damit erreichte Schutz ist viel zu gering.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#4

Re: Prinzipfrage Lizensierungs-Mechanismus

  Alt 1. Okt 2008, 18:59
Phoenix hat Recht.
Die Schwierigkeit ist es nicht, irgendwelche Lizenzsachen zu entwickeln, die möglichst schwer fälschbar sind - für Produkte die nicht einer breiten Masse von potentiellen Angreifern ausgesetzt sind, ist das ziemlich einfach machbar.
Es ist einfach reltiv sinnlos, weil sich die -Abfrage- ansich schon sehr leicht umgehen lässt, ganz unabhängig davon, wie komplex das Lizensierungssystem ist.

Wenn du wirklich auf einen Kopierschutz Wert legst, auch wenn der Aufwand das kaum rechtfertigt, solltest du ihn weitaus tiefer in das Programm verzahnen als ein "darf ich mit diesen daten laufen? -> (ja/nein)"
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Prinzipfrage Lizensierungs-Mechanismus

  Alt 1. Okt 2008, 19:02
Zitat von Phoenix:
Das wird wohl eine If-Abfrage sein. Sowas kann man in der Regel umgehen, indem man ein einzelnes Byte der Anwendung ändert. Also würde ich lassen. Der Aufwand lohnt sich nicht, denn der damit erreichte Schutz ist viel zu gering.
Bei Luckie habe ich letzens gelesen wie man so eine Abfrage verschleiern kann: Artikel Das würde das ganze noch etwas schwerer machen.
Natürlich gibt es keinen vollkommen Schutz, aber ich denke ein bisschen Sicher ist besser als ganz ohne Schutz.
Jan
  Mit Zitat antworten Zitat
steffen_d

Registriert seit: 28. Nov 2004
Ort: Leipzig
27 Beiträge
 
#6

Re: Prinzipfrage Lizensierungs-Mechanismus

  Alt 2. Okt 2008, 09:58
Hallo und erstmal Danke für die Antworten.

Ich probiere gerade den Debugger-Schutz von
der empfohlenen Seite
aus, aber leider funktioniert er nicht so wie er soll.

BeeingDebugged ist immer True. Ich habe die letzten 3 Varianten getestet, im FormCreate:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  BeingDebugged: Boolean;
begin
  asm
   mov eax, fs:[0];
   mov eax, [eax+$30];
   mov eax, [eax+2];
   mov [BeingDebugged], al
  end;
  if BeingDebugged then
    ShowMessage('Beeing Debugged');
end;
Natürlich starte ich meine EXE ausserhalb der Delphi-Umgebung.
Auch wenn das Delphi komplett zu ist, ist BeeingDebugged True.
Ich bin leider nicht der ASM-Guru.

Ich arbeite mit Delphi 7 und Win XP Professional SP3.

Oder mache ich im Aufruf irgendwas falsch?

Danke und Gruß
Steffen
  Mit Zitat antworten Zitat
steffen_d

Registriert seit: 28. Nov 2004
Ort: Leipzig
27 Beiträge
 
#7

Re: Prinzipfrage Lizensierungs-Mechanismus

  Alt 2. Okt 2008, 10:38
Hallo,
nach etwas wühlen in der DP und nochmal nachlesen habe ich
fs:[0] durch
fs:[$18] ersetzt:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  BeingDebugged: Boolean;
begin
  asm
// mov eax, fs:[0];
   mov eax, fs:[$18];
   mov eax, [eax+$30];
   mov eax, [eax+2];
   mov [BeingDebugged], al
  end;
  if BeingDebugged then
    ShowMessage('Beeing Debugged');
end;
So scheint es zu funktionieren.

Da bin ich dann gleich auf das nächste Problem gestoßen:
Die Absicherung bei Win95/98.
Im Prinzie steht ja hier wie es geht, doch hätte ich es auch gern ohne Funktionsaufruf so wie im obigen Beispiel.
Aber wie gesagt, ich weiss nicht wie ich das in ASM hinbekomme:

Danke und Gruß
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Prinzipfrage Lizensierungs-Mechanismus

  Alt 2. Okt 2008, 10:47
Ist korrigiert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Prinzipfrage Lizensierungs-Mechanismus

  Alt 2. Okt 2008, 10:56
...also...nur mal kurz meine allgemeine Meinung

1. Ist das Produkt für die breite Masse gedacht?
Wenn ja, dann wird dein Lizenschlüssel eh nicht lange halten und in kurzer
Zeit wird es Generatoren geben. Man kann sich die Mühe machen, aber es lohnt sich aus vielerlei Gründen nicht.
Hier in der DP gibt es genaug Threads dafür

2. Ist das Produkt nur für eine speziellen Marktsegment?
zB. nur für Administratoren, nur für Ärzte, nur für Rechtsanwälte usw.

Wenn ja, dann reicht dein erstes Verfahren völlig aus.
Diese professionellen Nutzer werden dein Produkt eh kaufen, wenn sie es wirklich benutzen wollen.
Solch spezielle Software wird in 99% der Fälle eh nicht geknackt auch wenn es möglcih wäre, der Grund dafür ist simpel.
Derjenige, der einen Generator schreibt ist auf "Ruhm" aus. Wenn das Programm nur von einer speziellen professionellen Klientel benutzt wird, wird sich die Suche nach solchen Generatoren gegen Null einpendeln.

just my 2 cents
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Prinzipfrage Lizensierungs-Mechanismus

  Alt 2. Okt 2008, 11:14
Hallo Steffen,

hast Du Brechis Beitrag übersehen?
Zitat:
Code:
function IsDebuggerPresent: boolean; stdcall;
asm
  MOV    EAX, DWORD PTR FS:[$30]  
  TEST   EAX, EAX
  JS     @@W9X
@@WNT:
  MOV    EAX, FS:[$18]
  MOV    EAX, [EAX+$30]
  MOVZX  EAX, [EAX+2]
  RET
@@W9X:
  MOV    EAX, [$BFFC9CE4]
  MOV    ECX, [EAX]
  CMP    DWORD PTR [ECX+$54], 1 
  SBB    EAX, EAX
  INC    EAX
  RET
end;
Gruß
K-H
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:57 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