Autor Beitrag
Experience1986
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 192

Win XP Pro SP2
Delphi 7
BeitragVerfasst: Fr 30.09.05 11:26 
Hi,

ich möchte gern wissen nach welchem System eine Seriennummer-Überprüfung aufgebaut wird, beziehungsweise wie kann ich eine Seriennummer generieren und mit dem selben Algorithmus überprüfen?

Ich habe schon etwas davon gehört, dass mathematische funktionen sich hierzu gut eignen würden. NUr wie sieht so etwas dann in der Umsetzung in Delhi aus?

Kennt Ihr da Tutorials oder habt Ihr da Lösungen?algorhytmus

Ich habe schon im Netz und hier im Forum gesucht, nur leider habe ich bislang noch nichts gefunden.

Es gibt zwar hier ein Thread, welches ein Projekt (Dlls) behandelt, nur habe ich da leider keinen Zugriff auf einen generierungsalgorithmus, den ich verständlicherweise gerne hätte.

Vielen Dank schonmal im voraus.
CodexX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

WinXP
Delphi XE
BeitragVerfasst: Fr 30.09.05 12:17 
es gibt kein allgemein gültiges vorgehen.
das machst du wie du denkst/willst.

einfache mathematische funktionen mit einander kombiniert sollten langen.
verwende z.b. xor, md5

und investiere nicht zu viel zeit rein. zumindest mach ich das nicht mehr, seit ich gesehen habe, wie einfach es ist sowas zu umgehen oder eigene nummern zu erstellen. die generierung ist dann sowas von egal. es kommt nur auf den kopierschutz an sich an. aber da gibts auch kein allheilmittel.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Fr 30.09.05 12:30 
Hallo!

Das einfachste was mir gerade einfällt wäre die Seriennummer in zwei Bereiche einzuteilen: Ein Bereich ist die eigentlichen Seriennummer und der zweite Bereich ist die Prüfnummer.

Z. B. 12345-6

12345 ist die Seriennummer

6 ist die Prüfziffer

Die Prüfziffer habe ich z. B. mit hilfe der Quersummen errechnet:

12345 = Quersumme 15

Dei Quersumme von 15 ist 6

Das wäre so die einfachste Seriennummernprüfung. ;-)

Lg Martin
Spaceguide
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Fr 30.09.05 12:30 
Am besten wäre es, wenn du bei der Serial nur überprüfst, ob z.B. bei Transformation mit einer deiner Funktionen 13 oder so rauskommt und sie dann erstmal als richtig ansiehst. Dann brauchst du noch andere Funktionen, die immer die gleiche Zahl bei einer echten Serial herausbekommen und setzt diese Überprüfungen an anderer Stelle im Programm ein. So hat es der Cracker wesentlich schwerer, als wenn du einfach

ausblenden Delphi-Quelltext
1:
if ÜberprüfeSerial(Serial) then ShowMessage('Korrekt!');					


verwendest.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 07.10.05 13:26 
Vor allem sollten die Berechnungen zur Validierung der Seriennummer zwischen der Initialisierung der Anwendung versteckt werden! D.h. immer ein Befehl, der zur Validierung dient und dann einige Befehle, die was anderes machen...

Vor allem sollte diese Initialisierungs-Prozedur relativ lang sein, denn mit Delphi-Decompilern bekommt man zwar die Prozeduren, aber wenn man darin dann 2000 Zeilen Assembler-Code hat, dann vergeht einem die Lust am Knacken...
(Also wenn man keine große Ahnung hat, wer sich auskennt, knackt alles!)