![]() |
Prinzipfrage Lizensierungs-Mechanismus
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 |
Re: Prinzipfrage Lizensierungs-Mechanismus
Hi,
vom Prinzip her ja. Ich würde jedoch dieses ![]() 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ß |
Re: Prinzipfrage Lizensierungs-Mechanismus
Zitat:
|
Re: Prinzipfrage Lizensierungs-Mechanismus
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)" |
Re: Prinzipfrage Lizensierungs-Mechanismus
Zitat:
![]() Natürlich gibt es keinen vollkommen Schutz, aber ich denke ein bisschen Sicher ist besser als ganz ohne Schutz. |
Re: Prinzipfrage Lizensierungs-Mechanismus
Hallo und erstmal Danke für die Antworten.
Ich probiere gerade den Debugger-Schutz von ![]() 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:
Natürlich starte ich meine EXE ausserhalb der Delphi-Umgebung.
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; 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 |
Re: Prinzipfrage Lizensierungs-Mechanismus
Hallo,
nach etwas wühlen in der DP und nochmal nachlesen habe ich
Delphi-Quellcode:
durch
fs:[0]
Delphi-Quellcode:
ersetzt:
fs:[$18]
Delphi-Quellcode:
So scheint es zu funktionieren.
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; Da bin ich dann gleich auf das nächste Problem gestoßen: Die Absicherung bei Win95/98. Im Prinzie steht ja ![]() Aber wie gesagt, ich weiss nicht wie ich das in ASM hinbekomme: Danke und Gruß Steffen |
Re: Prinzipfrage Lizensierungs-Mechanismus
Ist korrigiert.
|
Re: Prinzipfrage Lizensierungs-Mechanismus
...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 |
Re: Prinzipfrage Lizensierungs-Mechanismus
Hallo Steffen,
hast Du Brechis Beitrag übersehen? Zitat:
K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz