![]() |
Wie kommen Buchstaben in eine Seriennummer?
Hallo,
ich bin gerade dabei, einen Seriennummernschutz mit aktivierung zu programmieren. Ich habe jetzt mein erstes Projekt, was ich nicht einfach so für lau rausgeben will. Nun würde ich gerne eine Seriennummer (Prinzip soweit klar und schon umgesetzt) mit Buchstaben und Zahlen erstellen. Und jetzt frage ich mich, wie die Buchstaben in der Seriennummer "errechnet", ausgewählt oder eingefügt werden. Also nach welchem Schema? Wird zB eine Zahl errechnet, zB. 6 und dies ist dann der (26-6).Buchstabe des Alphabeten-Arrays oder so? Wäre um ein paar Vorschläge dankbar! Danke! |
Re: Wie kommen Buchstaben in eine Seriennummer?
Vorschlag: Ein Array of Char ['0'..'9', 'A'..'Z'].
Dann immer zufällig ein Zeichen aus diesem Array "ziehen" und in deine Seriennummer einfügen. Man kann dieses Array auch "durcheinanderwirbeln". Ich habe das mal so gemacht, dass ich eine "Quersumme" über die Seriennummer errechnet habe, die aus der Summe von (Ord(Char) + Position im Array) bestand. Dann hab ich das 1000 mal durchlaufen lassen um die am meisten vorkommende "Quersumme" zu ermitteln. Die habe ich dann zu Grunde gelegt, um aus einer Million "Ziehungen" nur die zu speichern, die diese "Quersumme" haben. So wurde die Prüfung auf Echtheit der Seriennummer garantiert. Es ergaben sich dann meist mehrere Tausend solcher Keys. Wenn man das Quell-Array mit den Ursprungszeichen immer anders "durcheinanderbringt" hat man mit diesem Verfahren sehr viele Möglichkeiten, immer neue Keys (für z.B. andere Anwendungen) zu erstellen. |
Re: Wie kommen Buchstaben in eine Seriennummer?
Kleiner Tipp:
Wenn du einen solchen Schutz realisieren willst, würde ich dein "Vorhaben" NICHT hier öffentlich schreiben. Ebenso würde ich keine Tipps aus dem Forum 1zu1 übernehmen. Dann kannst du genau so gut einen Verschiebealgorythmus nehmen, der bringt genau soviel, und viel ist in diesem Sinne "nix". |
Re: Wie kommen Buchstaben in eine Seriennummer?
Also, ich habe jetzt einen Algorithmus mit mathematischen Spielereien entwickelt. Die entstandene Serien-NUMMER überlagere ich dann quasi per Zufall mit Buchstaben aus einen indexierten Array.
Zum Beispiel:
Code:
So kann ich dann, bevor ich die Seriennummer auf Korrektheit prüfe, die Buchstaben intern wieder in Zahlen umwandeln. Sollte doch so reichen, oder?
1 = A, K, U
2 = B, L, V 3 = C, M, W 4 = ........ Blöd ist nur, dass die Buchstaben dann keinen eigentlichen Sinn haben, oder? @MichaelLinden: Keiner kennt mein Programm ;) Außerdem verrate ich ja die mathematischen Berechnungen nicht. |
Re: Wie kommen Buchstaben in eine Seriennummer?
BtW:
Dir bringt der komplizierteste Algorithmus nichts, wenn du nachher schreibst
Delphi-Quellcode:
Denn das kann jeder überspringen, der sich ein wenig auskennt ;)
if check(serial)=True then Starte_Programm;
|
Re: Wie kommen Buchstaben in eine Seriennummer?
Zitat:
- Umgehe direkte Vergleiche: if key then starte..; - Umgehe Variablennamen wie: key, serial, seriennummer, generatedkey , usw - Versuche den Key wenn schon in Form von char(65) + char(66) + char(67); (ABC) zu schreiben statt ABC: |
Re: Wie kommen Buchstaben in eine Seriennummer?
Zitat:
Am Besten ist es, den Key gar nicht im Programm zu haben, sondern nach der Eingabe mit einer speziellen Berechnung (die auch recht kompliziert sein kann) auf Echtheit zu prüfen. |
Re: Wie kommen Buchstaben in eine Seriennummer?
Zitat:
Der einzige wirkliche Schutz wäre eh, die komplette Datei zu verschlüsseln und erst stückchenweise bei der Ausführung zu entschlüsseln. Auch das ließe sich zwar theoretisch umgehen, allerdings macht es afaik auch Skype so, das bisher immer noch als ungeknackt gilt. So ein Aufwand ist aber eigentlich immer unnötig. Ich sehe schon wie wir hier wieder in die übliche Debatte zum Sinn und Unsinn von Kopierschutz hineinschlittern... :wink: |
Re: Wie kommen Buchstaben in eine Seriennummer?
Vielen Dank für die Tipps...
Das mit dem Disassembler ist mir klar - kenne mich damit auch ein bissl aus. Nur ich weis nicht so recht, wie ich es sonst umgehen kann. Die Aussage Zitat:
Wenn ich doch Seriennummern nach einem Algorithmus erstelle, kann ich sie doch auch wieder zurückrechnen. Jeder User soll seine persönliche Seriennummer bekommen. Wieso sollte ich jede persönliche Seriennummer im Programm speichern? |
Re: Wie kommen Buchstaben in eine Seriennummer?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 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