![]() |
Re: Keygen mit MD5 um Serial zu generieren !
Zitat:
Zitat:
Wenn ich mal einen Vorschlag für ein "einfacheres" System für nicht so erfahrenere Delphi-Benutzer machen darf: (Code vereinfacht zum Lernen)
Delphi-Quellcode:
Nicht sonderlich sicher. Aber akzeptabel. Gegen Disassembler ist das Pr0g halt nicht sicher.
function md5(input: string): string;
begin result := md5Print(md5String(input)); end; function mein_serialgenerator(benutzername: string): string; var mein_md5, mein_prekey, mein_serialkey: string; const // Mögliche Sicherheitslücke: mein_seed kann man aus der EXE herauslesen. Aber ich will es ja einfach halten mein_seed := 'ABCD-Produkt-Produktversion-Edition'; begin // Dein Benutzername ist jetzt als MD5 festgehalten mein_md5 := md5(benutzername); // Damit jetzt nicht jeder daran herumspielt und einen eigenen md5 generiert, legst du einen Seed dazu und machst nochmal md5 mein_prekey := md5(mein_seed + mein_md5); // Nun hast du aber 32 Zeichen. Tu das deinen Anwendern bitte nicht an. // Nimm die ersten 8 Zeichen meinetwegen. Das ist jetzt dein Serialkey, der aus dem Benutzernamen abgeleitet ist mein_serialkey := copy(mein_prekey, 0, 8); result := mein_serialkey; end; // Kontrolle der Benutzereingabe function key_gueltig(eigegebener_benutzername, eingegebener_serialkey): boolean; begin if LowerCase(mein_serialgenerator(eigegebener_benutzername)) <> LowerCase(eingegebener_serialkey) then begin result := false; end else begin result := true; end; end; PS: Überleg dir, ob du die Hardware des Benutzers miteinfließen lassen willst. Dann wäre Zwangsaktivierung etc. notwendig, was das Ganze ziemlich erschwert. Ist deine Software wirtschaftlich so entscheidend? Gruß blackdrake |
Re: Keygen mit MD5 um Serial zu generieren !
Zitat:
Serial : Passwort |
Re: Keygen mit MD5 um Serial zu generieren !
Dann in der Art?
Delphi-Quellcode:
Ich blick zwar nicht ganz durch, wie dein Sicherheitscheck ablaufen soll, aber ich hoffe, dass du mit meinem MD5-basierenden Keygen-System etwas anfangen kannst.
Key := mein_serialgenerator(Serial);
Gruß blackdrake |
Re: Keygen mit MD5 um Serial zu generieren !
Zitat:
Stringebene ist, die bereits erfolgte Ausgabe von Werten miteinander zu verketten / zu verarbeiten, wie es hier halt versucht wird, an Hand eines Hashs aus verschiedenen Werten eine Serial zu bilden. Binärebene wäre, die Bits (oder wenigstens die Bytes) der vorhandenen Werte (Name, CPU, LAN, ...) miteinander zu verknüpfen, damit am Ende wieder eine brauchbare 32bit-Zahl (je nach Anspruch) rauskommt, wovon man dann eine Ausgabe erstellt. |
Re: Keygen mit MD5 um Serial zu generieren !
Zitat:
Delphi-Quellcode:
Ich bekomme ja zwar ein String von 8 Zeichen : fe563e0d
key.text:= mein_serialgenerator(mein_serialkey);
aber was ist das ?! Was ist dann mit Benutzername und Passwort ? Ich verstehe nicht genau, wie ich den Benutzername, Passwort eingebe Wie kann das Programm die Serial und Benutzername überprüfen ? |
Re: Keygen mit MD5 um Serial zu generieren !
Diese 8 Bytes sind die ersten 8 Byte von md5(Seed + md5(benutzername)). Siehe meinen ausführlich beschriebenen Code.
Als Benutzername kannst du auch ein Passwort einsetzen. Und bei Benutzereingabe (Softwarefreischaltung) prüfst du mit key_gueltig() oder eben direkt mit if (md5(Seed + md5(passwort)) = benutzereingabe) then ... |
Re: Keygen mit MD5 um Serial zu generieren !
Wobei die Benutzereingabe auch knifflig sein kann. Man glaubt nicht, wie viele Leute Sachen wie Oh/Null, Eins/ell/Ih etc. nicht auseinander halten können. Wir sind irgendwann dazu übergegangen solche Zeichen auf jeweils ein erlaubtes pro "Verwechselset" zu reduzieren und dann in der Eingaberoutine die anderen stillschweigend direkt zu ersetzen vor der Keyprüfung... Der Support hat es uns wirklich sehr gedankt :)
|
Re: Keygen mit MD5 um Serial zu generieren !
Zitat:
|
Re: Keygen mit MD5 um Serial zu generieren !
Tja, bei uns gabs da auch nur Grossbuchstaben, aber manche Leute lasen die Eins trotzdem als ell :) Sogar Zett/Zwei und Ess/Fünf war für manche ein Problem :) Allerdings muss ich dazu sagen, dass diese Sachen teilweise auch dem miesen Druck der Key-Aufkleber geschuldet waren, manche Distributionspartner sparten echt am total falschen Ende :mrgreen: Wobei man vom Standarduser aber eh keinen Denkprozess bei der Eingabe erwarten darf. Der nervt dann einfach den Support mit "geht nicht!" :) Für die Härtefälle unter den Kunden ohne Scanner usw. haben wir dann für den Support ein Tool gebaut das aus der Key-Datenbank mögliche Treffer rausfischt. *g*
|
Re: Keygen mit MD5 um Serial zu generieren !
Zitat:
oder meinst du mein_seed ? Noch einmal wenn ich so mache :
Delphi-Quellcode:
dann bekomme ich diese 32 String : d3d9446802a44259755d38e6d163e820
Edit3.text := md5Print(md5String(Edit1.Text));
// in Feld Edit1 habe ich "10" eingegeben wie kann ich nun mit einem Code mit dem erzeugten String wieder meinen Wert "10" erhalten ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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